Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Nombre de jours ouvrés et Nombre de couleurs

9 réponses
Avatar
Yannick P
1- Comment fait t'on via VBA pour connaitre le nombre de jours ouvrés ?
2- J'ai une macro qui calcul le nombre de cellule de couleurs x jaunes x
vertes... par contre j'ai mis un format conditionnel de couleur grise....
sur certaine cellule.... or le nombre de cellule grises n'est pas bon... est
ce lié à ce format conditionnel ?

Merci d'avance

9 réponses

Avatar
JB
Bonsoir,

Avec Macro complémentaire Utilitaire Analyse:

Tableur: n = [NB.JOURS.OUVRES(A1,B1)]

Variables:
d = #1/1/2006#
f = Date
d = #1/1/2006#
f = Date
z = Evaluate("NB.JOURS.OUVRES(""" & d & """,""" & f & """)")

Sans mocro complémentaire avec fonction perso:

Function NbJoursOuvres(début, fin)
Dim i As Integer, d As Long, nfériés As Integer, témoin As Boolean
Dim fériés(1 To 11)
an = Year(début)
If début > fin Then
NbJoursOuvres = 0
Else
paques = DateSerial(an, 3, 23) + ((2 * (an Mod 4) + (4 * (an Mod 7)
+ _
(6 * (((19 * (an Mod 19)) + 24) Mod 30) + 5))) Mod 7) + _
((19 * (an Mod 19) + 24) Mod 30) - 1
fériés(1) = DateSerial(an, 1, 1)
fériés(2) = DateSerial(an, 5, 1)
fériés(3) = DateSerial(an, 5, 8)
fériés(4) = DateSerial(an, 7, 14)
fériés(5) = DateSerial(an, 8, 15)
fériés(6) = DateSerial(an, 11, 1)
fériés(7) = DateSerial(an, 11, 11)
fériés(8) = DateSerial(an, 12, 25)
fériés(9) = paques + 1
fériés(10) = paques + 39
fériés(11) = paques + 50
NbJoursOuvres = 0
For d = début To fin
témoin = False
For i = 1 To 11
If d = fériés(i) Then témoin = True
Next i
If Weekday(d) <> 1 And Weekday(d) <> 7 And Not témoin Then
NbJoursOuvres = NbJoursOuvres + 1
Next d
End If
End Function

Cordialement JB


1- Comment fait t'on via VBA pour connaitre le nombre de jours ouvrés ?
2- J'ai une macro qui calcul le nombre de cellule de couleurs x jaunes x
vertes... par contre j'ai mis un format conditionnel de couleur grise....
sur certaine cellule.... or le nombre de cellule grises n'est pas bon... est
ce lié à ce format conditionnel ?

Merci d'avance


Avatar
Yannick P
MErci ca marche pour les jours ouvrés

Une idée pour le compte des cellules grises ?

Merci encore



"JB" a écrit dans le message de news:

Bonsoir,

Avec Macro complémentaire Utilitaire Analyse:

Tableur: n = [NB.JOURS.OUVRES(A1,B1)]

Variables:
d = #1/1/2006#
f = Date
d = #1/1/2006#
f = Date
z = Evaluate("NB.JOURS.OUVRES(""" & d & """,""" & f & """)")

Sans mocro complémentaire avec fonction perso:

Function NbJoursOuvres(début, fin)
Dim i As Integer, d As Long, nfériés As Integer, témoin As Boolean
Dim fériés(1 To 11)
an = Year(début)
If début > fin Then
NbJoursOuvres = 0
Else
paques = DateSerial(an, 3, 23) + ((2 * (an Mod 4) + (4 * (an Mod 7)
+ _
(6 * (((19 * (an Mod 19)) + 24) Mod 30) + 5))) Mod 7) + _
((19 * (an Mod 19) + 24) Mod 30) - 1
fériés(1) = DateSerial(an, 1, 1)
fériés(2) = DateSerial(an, 5, 1)
fériés(3) = DateSerial(an, 5, 8)
fériés(4) = DateSerial(an, 7, 14)
fériés(5) = DateSerial(an, 8, 15)
fériés(6) = DateSerial(an, 11, 1)
fériés(7) = DateSerial(an, 11, 11)
fériés(8) = DateSerial(an, 12, 25)
fériés(9) = paques + 1
fériés(10) = paques + 39
fériés(11) = paques + 50
NbJoursOuvres = 0
For d = début To fin
témoin = False
For i = 1 To 11
If d = fériés(i) Then témoin = True
Next i
If Weekday(d) <> 1 And Weekday(d) <> 7 And Not témoin Then
NbJoursOuvres = NbJoursOuvres + 1
Next d
End If
End Function

Cordialement JB


1- Comment fait t'on via VBA pour connaitre le nombre de jours ouvrés ?
2- J'ai une macro qui calcul le nombre de cellule de couleurs x jaunes x
vertes... par contre j'ai mis un format conditionnel de couleur grise....
sur certaine cellule.... or le nombre de cellule grises n'est pas bon...
est
ce lié à ce format conditionnel ?

Merci d'avance


Avatar
JB
Bonjour,

Il suffit d'écrire une formule qui reprend les conditions de la MFC.
Pour les MFC simples (sans formule) tu peut utiliser une fonction perso
qui donne le nombre de cellules d'un champ qui vérifient la condition
spécifiée -1,2,3 - (à placer dans un module)

http://cjoint.com/?kpqN7EVNhW

Function CompteFC(champ As Range, noCondition)
Application.Volatile
t = 0
For Each c In champ
If c.FormatConditions(noCondition).Type = xlCellValue Then
tmp1 = Evaluate(c.FormatConditions(1).Formula1)
Select Case c.FormatConditions(1).Operator
Case xlEqual: t = t + Evaluate(c & "=" & tmp1) * -1
Case xlGreater: t = t + Evaluate(c & ">" & tmp1) * -1
Case xlLess: t = t + Evaluate(c & "<" & tmp1) * -1
Case xlGreaterEqual: t = t + Evaluate(c & ">=" & tmp1) * -1
Case xlLessEqual: t = t + Evaluate(c & "<=" & tmp1) * -1
Case xlNotEqual: t = t + Evaluate(c & "<>" & tmp1) * -1
Case xlBetween
tmp2 = Evaluate(c.FormatConditions(1).Formula2)
t = t + Evaluate("AND(" & c & ">=" & tmp1 & "," & c & "< ="
& tmp2 & ")") * -1
Case xlNotBetween
tmp2 = Evaluate(c.FormatConditions(1).Formula2)
t = t + Evaluate("OR(" & c & "<" & tmp1 & "," & c & ">" &
tmp2 & ")") * -1
End Select
Else
't = t + Evaluate(c.FormatConditions(1).Formula1) * -1
t = "Formule"
End If
Next c
CompteFC = t
End Function

Cordialement JB



MErci ca marche pour les jours ouvrés

Une idée pour le compte des cellules grises ?

Merci encore



"JB" a écrit dans le message de news:

Bonsoir,

Avec Macro complémentaire Utilitaire Analyse:

Tableur: n = [NB.JOURS.OUVRES(A1,B1)]

Variables:
d = #1/1/2006#
f = Date
d = #1/1/2006#
f = Date
z = Evaluate("NB.JOURS.OUVRES(""" & d & """,""" & f & """)")

Sans mocro complémentaire avec fonction perso:

Function NbJoursOuvres(début, fin)
Dim i As Integer, d As Long, nfériés As Integer, témoin As Boolean
Dim fériés(1 To 11)
an = Year(début)
If début > fin Then
NbJoursOuvres = 0
Else
paques = DateSerial(an, 3, 23) + ((2 * (an Mod 4) + (4 * (an Mod 7)
+ _
(6 * (((19 * (an Mod 19)) + 24) Mod 30) + 5))) Mod 7) + _
((19 * (an Mod 19) + 24) Mod 30) - 1
fériés(1) = DateSerial(an, 1, 1)
fériés(2) = DateSerial(an, 5, 1)
fériés(3) = DateSerial(an, 5, 8)
fériés(4) = DateSerial(an, 7, 14)
fériés(5) = DateSerial(an, 8, 15)
fériés(6) = DateSerial(an, 11, 1)
fériés(7) = DateSerial(an, 11, 11)
fériés(8) = DateSerial(an, 12, 25)
fériés(9) = paques + 1
fériés(10) = paques + 39
fériés(11) = paques + 50
NbJoursOuvres = 0
For d = début To fin
témoin = False
For i = 1 To 11
If d = fériés(i) Then témoin = True
Next i
If Weekday(d) <> 1 And Weekday(d) <> 7 And Not témoin Then
NbJoursOuvres = NbJoursOuvres + 1
Next d
End If
End Function

Cordialement JB


1- Comment fait t'on via VBA pour connaitre le nombre de jours ouvrés ?
2- J'ai une macro qui calcul le nombre de cellule de couleurs x jaunes x
vertes... par contre j'ai mis un format conditionnel de couleur grise.. ..
sur certaine cellule.... or le nombre de cellule grises n'est pas bon...
est
ce lié à ce format conditionnel ?

Merci d'avance




Avatar
marcel
## Function CompteFC(champ As Range, noCondition)

C'est de toi cette fonction ?
J'ai déjà vu ça ici et il y a des années mais c'était pas toi l'auteur ----
Avatar
JB
Bonjour Lucas,

Tu vas bien sûr donner les références.

JB

## Function CompteFC(champ As Range, noCondition)

C'est de toi cette fonction ?
J'ai déjà vu ça ici et il y a des années mais c'était pas toi l 'auteur ----


Avatar
JB
Il y avait qq bugs dans la fonction:

http://cjoint.com/?kpvWNnvqHU

Function CompteFC(champ As Range, noCondition)
Application.Volatile
t = 0
For Each c In champ
If noCondition <= c.FormatConditions.Count Then
If c.FormatConditions(noCondition).Type = xlCellValue Then
tmp1 = Evaluate(c.FormatConditions(noCondition).Formula1)
Select Case c.FormatConditions(noCondition).Operator
Case xlEqual: t = t + Evaluate(c & "=" & tmp1) * -1
Case xlGreater: t = t + Evaluate(c & ">" & tmp1) * -1
Case xlLess: t = t + Evaluate(c & "<" & tmp1) * -1
Case xlGreaterEqual: t = t + Evaluate(c & ">=" & tmp1) *
-1
Case xlLessEqual: t = t + Evaluate(c & "<=" & tmp1) * -1
Case xlNotEqual: t = t + Evaluate(c & "<>" & tmp1) * -1
Case xlBetween
tmp2 =
Evaluate(c.FormatConditions(noCondition).Formula2)
t = t + Evaluate("AND(" & c & ">=" & tmp1 & "," & c &
"<=" & tmp2 & ")") * -1
Case xlNotBetween
tmp2 =
Evaluate(c.FormatConditions(noCondition).Formula2)
t = t + Evaluate("OR(" & c & "<" & tmp1 & "," & c &
">" & tmp2 & ")") * -1
End Select
Else
't = t + Evaluate(c.FormatConditions(noCondition).Formula1)
* -1 ' ne fonctionne pas
t = "Formule"
End If
End If
Next c
CompteFC = t
End Function

JB



MErci ca marche pour les jours ouvrés

Une idée pour le compte des cellules grises ?

Merci encore



"JB" a écrit dans le message de news:

Bonsoir,

Avec Macro complémentaire Utilitaire Analyse:

Tableur: n = [NB.JOURS.OUVRES(A1,B1)]

Variables:
d = #1/1/2006#
f = Date
d = #1/1/2006#
f = Date
z = Evaluate("NB.JOURS.OUVRES(""" & d & """,""" & f & """)")

Sans mocro complémentaire avec fonction perso:

Function NbJoursOuvres(début, fin)
Dim i As Integer, d As Long, nfériés As Integer, témoin As Boolean
Dim fériés(1 To 11)
an = Year(début)
If début > fin Then
NbJoursOuvres = 0
Else
paques = DateSerial(an, 3, 23) + ((2 * (an Mod 4) + (4 * (an Mod 7)
+ _
(6 * (((19 * (an Mod 19)) + 24) Mod 30) + 5))) Mod 7) + _
((19 * (an Mod 19) + 24) Mod 30) - 1
fériés(1) = DateSerial(an, 1, 1)
fériés(2) = DateSerial(an, 5, 1)
fériés(3) = DateSerial(an, 5, 8)
fériés(4) = DateSerial(an, 7, 14)
fériés(5) = DateSerial(an, 8, 15)
fériés(6) = DateSerial(an, 11, 1)
fériés(7) = DateSerial(an, 11, 11)
fériés(8) = DateSerial(an, 12, 25)
fériés(9) = paques + 1
fériés(10) = paques + 39
fériés(11) = paques + 50
NbJoursOuvres = 0
For d = début To fin
témoin = False
For i = 1 To 11
If d = fériés(i) Then témoin = True
Next i
If Weekday(d) <> 1 And Weekday(d) <> 7 And Not témoin Then
NbJoursOuvres = NbJoursOuvres + 1
Next d
End If
End Function

Cordialement JB


1- Comment fait t'on via VBA pour connaitre le nombre de jours ouvrés ?
2- J'ai une macro qui calcul le nombre de cellule de couleurs x jaunes x
vertes... par contre j'ai mis un format conditionnel de couleur grise.. ..
sur certaine cellule.... or le nombre de cellule grises n'est pas bon...
est
ce lié à ce format conditionnel ?

Merci d'avance




Avatar
JB
Bonjour,

-Un message agressif le 14 oct, un autre diffamatoire le 15 oct. Ca
commence à faire beaucoup.

Je pécise:
1- Cette fonction, je l'ai écrite en partant des mots cls de l'aide
VBA
2- Cette fonction a déjà dû être developpé par X personnes
3- J'ai écris des fonctions bien + complexes que celle ci

http://www.excelabo.net/compteclic.php?nom=jb-filtreautomatique

Ce fichier contient une fonction similaire qui donne la formule du
filtre automatique de tous les champs. A ma connaissance, cette
fonction n'a pas sû etre developpé par beaucoup de personnes

JB


## Function CompteFC(champ As Range, noCondition)

C'est de toi cette fonction ?
J'ai déjà vu ça ici et il y a des années mais c'était pas toi l 'auteur ----


Avatar
marcel
## Il a dit :
Je pécise:
¤¤ J'ai répondu :
Effectivement ça fait prout !

## Il a dit :
1- Cette fonction, je l'ai écrite en partant des mots cls de l'aide
VBA
¤¤ J'ai répondu :
Comme il est amusant !

## Il a dit :
2- Cette fonction a déjà dû être developpé par X personnes
¤¤ J'ai répondu :
Sans blague ?

## Il a dit :
3- J'ai écris des fonctions bien + complexes que celle ci
¤¤ J'ai répondu :
On dégouline tous d'admiration !

## Il a dit :
A ma connaissance, cette
fonction n'a pas sû etre developpé par beaucoup de personnes
¤¤ J'ai répondu :
Il faudra aussi revoir la syntaxe française !

## Il a pas (encore) dit :
3- Je suis le meilleur et le plus beau
¤¤ J'ai déjà répondu :
En faisant quelques recherches/comparaisons, on s'aperçoit rapidement que tu
es passé maître dans l'art du copier/coller et pompage de codes/formules
Avatar
DarthMac
heu... c'est qui ce trooduc ?

mac

marcel a exposé le 16/10/2006 :
## Il a dit :
Je pécise:
¤¤ J'ai répondu :
Effectivement ça fait prout !

## Il a dit :
1- Cette fonction, je l'ai écrite en partant des mots cls de l'aide
VBA
¤¤ J'ai répondu :
Comme il est amusant !

## Il a dit :
2- Cette fonction a déjà dû être developpé par X personnes
¤¤ J'ai répondu :
Sans blague ?

## Il a dit :
3- J'ai écris des fonctions bien + complexes que celle ci
¤¤ J'ai répondu :
On dégouline tous d'admiration !

## Il a dit :
A ma connaissance, cette
fonction n'a pas sû etre developpé par beaucoup de personnes
¤¤ J'ai répondu :
Il faudra aussi revoir la syntaxe française !

## Il a pas (encore) dit :
3- Je suis le meilleur et le plus beau
¤¤ J'ai déjà répondu :
En faisant quelques recherches/comparaisons, on s'aperçoit rapidement que tu
es passé maître dans l'art du copier/coller et pompage de codes/formules