Sub Macro1()
Dim plv As Range 'déclare la variable plv (PLage Verticale)
Dim cel1 As Range 'déclare la variable cel1 (CELlule 1)
Dim plh As Range 'déclare la variable plh (PLage Horizontale)
Dim cel2 As Range 'déclare la variable cel2 (CELlule 2)
Dim nb As Integer 'déclare la variable nb (NomBre)
Dim r As Range 'déclare la variable r (Recherche)
Set plv = Sheets("Nov Gardes 09").Range("C8:C" & Sheets("Nov Gardes 09").Range("C65536").End(xlUp).Row) 'définit la plage plv
For Each cel1 In plv 'boucle 1 sur toutes les cellules cel1 de la plage plv
nb = 0 'réinitialise la variable nb
Set plh = .Range(.Cells(cel1.Row, 4), .Cells(cel1.Row, 256).End(xlToRight)) 'définit la plage plh
For Each cel2 In plh 'boucle 2 sur toutes les cellules cel2 de la plage plh
If cel2.Value <> "" Then 'condition 1 : si la cellule n'est pas vide
'condition 2 : si mise en forme conditionnelle vérifíée, nb s'incrémente de 1
If Application.WorksheetFunction.Weekday(.Cells(7, cel2.Column)) = 1 Or _
Application.WorksheetFunction.CountIf(Range("Fériés"), .Cells(7, cel2.Column)) = 1 Then nb = nb + 1
End If 'fin de la condition 2
Next cel2 'prochaine cellule cel2 de la boucle 2
Set r = Sheets("Nov paie").Range("B5:B" & Sheets("Nov paie").Range("B65536").End(xlUp).Row).Find(cel1) 'définit la variable r
If Not r Is Nothing Then r.Offset(0, 3).Value = nb 'si il existe au moins une occurrence de r, inscrit nb dans la colonne E
Next cel1 'prochaine cellule cel1 de la boucle 1
End Sub