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

Nombre de jours (sans répétition)

5 réponses
Avatar
Denys
Bonjour =E0 tous,

La formule suivante me donne comme r=E9sultat le nombre de jours dans un
mois qu'un employ=E9 a entr=E9 des donn=E9es sur sa feuille excel, car les
dates sont en colonne A:

Sub JrsTravail()
Application.ScreenUpdating =3D False
Dim L As Long
With ActiveSheet()
If Range("A3").Value =3D "" Then Exit Sub
L =3D .Range("A65536").End(xlUp).Row
.Range("A3:A" & L).Name =3D "ZN"
.Range("G1").FormulaArray =3D "=3DSUM(IF(COUNTIF(zn,zn)=3D0,"""",1/
COUNTIF(zn,zn))*(MONTH(zn)=3DROW(G1)))"
.Range("G1:G12").FillDown
.Range("G1:G12") =3D .Range("G1:G12").Value
End With
end sub

Je peux donc savoir le nombre de jours o=F9 l'employ=E9 a =E9t=E9 pr=E9sent.=

Comment maintenant rajouter dans cette formule si aussi en colonne C
on retrouve le mot "Meeting"....

Donc, le r=E9sultat devant =EAtre le nombre de jours o=F9 l'employ=E9 f=FBt
pr=E9sent et qu'il a assist=E9 =E0 un meeting. N.B. que si l'employ=E9 a
assist=E9 =E0 deux meetings ou plus durant la journ=E9e, cela ne doit
compter que pour un......(C'est l=E0 la difficult=E9)...

Merci pour votre temps

Denys

5 réponses

Avatar
MichDenis
Ajoute une plage nommée à ta procédure :
L = .Range("A65536").End(xlUp).Row
.Range("A3:A" & L).Name = "ZN"
.Range("C3:C" & L).Name = "ZN1" 'Ajouter


.Range("G1").FormulaArray = "=SUM(IF(COUNTIF(zn,zn)=0,"""",1/
COUNTIF(zn,zn))*(MONTH(zn)=ROW(G1)*(ZN1=""Meeting""))





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

Bonjour à tous,

La formule suivante me donne comme résultat le nombre de jours dans un
mois qu'un employé a entré des données sur sa feuille excel, car les
dates sont en colonne A:

Sub JrsTravail()
Application.ScreenUpdating = False
Dim L As Long
With ActiveSheet()
If Range("A3").Value = "" Then Exit Sub
L = .Range("A65536").End(xlUp).Row
.Range("A3:A" & L).Name = "ZN"
.Range("G1").FormulaArray = "=SUM(IF(COUNTIF(zn,zn)=0,"""",1/
COUNTIF(zn,zn))*(MONTH(zn)=ROW(G1)))"
.Range("G1:G12").FillDown
.Range("G1:G12") = .Range("G1:G12").Value
End With
end sub

Je peux donc savoir le nombre de jours où l'employé a été présent.
Comment maintenant rajouter dans cette formule si aussi en colonne C
on retrouve le mot "Meeting"....

Donc, le résultat devant être le nombre de jours où l'employé fût
présent et qu'il a assisté à un meeting. N.B. que si l'employé a
assisté à deux meetings ou plus durant la journée, cela ne doit
compter que pour un......(C'est là la difficulté)...

Merci pour votre temps

Denys
Avatar
Denys
On 20 mar, 09:57, "MichDenis" wrote:
Ajoute une plage nommée à ta procédure :
 L = .Range("A65536").End(xlUp).Row
    .Range("A3:A" & L).Name = "ZN"
    .Range("C3:C" & L).Name = "ZN1"  'Ajouter

.Range("G1").FormulaArray = "=SUM(IF(COUNTIF(zn,zn)=0,"""",1/
COUNTIF(zn,zn))*(MONTH(zn)=ROW(G1)*(ZN1=""Meeting""))



Bonjour Denis,

Pour une rare fois, cela ne fonctionne pas. Excel me dit "Unable to
set the Formula Array property of the range class". Run time error
1004.

Pourtant, le range est le même (si cela a quelque chose à voir)

Je suis allé effacer les plages ZN et ZN1, j'ai recommencé, mais avec
le même résultat.... j'ai aussi essayé ZN1=$I$12 sans résultat.... ..


Merci

Denys

Avatar
Denys
Pourtant, si j'entre la formule suivant "à la mitaine" dans la barre
de formule et que je fais Control Shift Enter (matricielle),
j'obtiens ce qui suit:

=SUM(IF(COUNTIF(ZN,ZN)=0,"""",1/
COUNTIF(ZN,ZN))*(MONTH(ZN)=ROW(G1)*(ZN1=$I$12)))

En G1 j'ai comme réponse 0.365 (janvier)
en G2 0.25 (février)
en G11 5.36 (novembre)
en G12 2.04 (décembre)

Notre feuille de travail commence en novembre....... Comment peut-on
interpréter ces résultats????

Merci

Denys
Avatar
MichDenis
La formule est celle-ci (sur une même ligne) .... peut-être un problème de parenthèse

.Range("G1").FormulaArray =
"=SUM(IF(COUNTIF(zn,zn)=0,"""",1/COUNTIF(zn,zn))*(zn1=""Meeting"")*(MONTH(zn)=ROW(G1)))"

Et avec un test très sommaire, cela a l'air de fonctionner ...
Je quitte et ne serai plus disponible ...!



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

Pourtant, si j'entre la formule suivant "à la mitaine" dans la barre
de formule et que je fais Control Shift Enter (matricielle),
j'obtiens ce qui suit:

=SUM(IF(COUNTIF(ZN,ZN)=0,"""",1/
COUNTIF(ZN,ZN))*(MONTH(ZN)=ROW(G1)*(ZN1=$I$12)))

En G1 j'ai comme réponse 0.365 (janvier)
en G2 0.25 (février)
en G11 5.36 (novembre)
en G12 2.04 (décembre)

Notre feuille de travail commence en novembre....... Comment peut-on
interpréter ces résultats????

Merci

Denys
Avatar
Denys
On 20 mar, 10:57, "MichDenis" wrote:
La formule est celle-ci (sur une même ligne) .... peut-être un probl ème de parenthèse

  .Range("G1").FormulaArray =
"=SUM(IF(COUNTIF(zn,zn)=0,"""",1/COUNTIF(zn,zn))*(zn1=""Meeting"")*( MONTH(z­n)=ROW(G1)))"

Et avec un test très sommaire, cela a l'air de fonctionner ...
Je quitte et ne serai plus disponible ...!

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

Pourtant, si j'entre la formule suivant "à la mitaine" dans la barre
de formule et que je fais Control Shift Enter (matricielle),
j'obtiens ce qui suit:

=SUM(IF(COUNTIF(ZN,ZN)=0,"""",1/
COUNTIF(ZN,ZN))*(MONTH(ZN)=ROW(G1)*(ZN1=$I$12)))

En G1 j'ai comme réponse       0.365    (janvier)
en G2                                    0.25      (février)
en G11                                   5.36      (novembre)
en G12                                   2.04      (décembre)

Notre feuille de travail commence en novembre....... Comment peut-on
interpréter ces résultats????

Merci

Denys


Merci encore Denis et Joyeuses Pâques.....

Denys