Bonjour,
Intéressant ton fichier excel, et chiadé !
Je te proposerais bien ceci :
- restructurer un poil ton calendrier en mettant les dates au format jj au lieu des n° 1 à 28 ... 31
- ajouter à ta fonction
Function Congés(Zne As Range, d As Byte)
2 paramètres qui sont début et fin de période (B1 et B2) - réduire Zne à E5_____ au lieu de D5______ et tester si le cellule.offset(0,-1) est incluse dans la plage B1:B2
Comme j'ai vu que les dates étaient déjà en colonnes E et consorts, il n'est pas nécessaire de restructurer le calendrier
En incluant le début et la fin de la période, ta fonction serait :
Function Congés(Zne As Range, debut As Range, fin As Range, d As Byte)
Dim Cell As Range
Congés = 0
Application.Volatile
For Each Cell In Zne
If Cell.Interior.ColorIndex = 24 _
And Cell.Value >= debut.Value _
And Cell.Value <= fin.Value Then
If Weekday(CDate(Cell), 2) = d Then Congés = Congés + 1
End If
Next
End Function
Avec cela, la fonction Congés fonctionne, pour le reste à vérifier car je me suis focalisé sur cette dernière ...