Sub Pourcentage()
Dim P As Range, c As Range, site$, i As Variant, Plig As Range, Pcol As Range, n%, c1 As Range
Sheets("Recap").AutoFilterMode = False 'suppression du fitre par sécurité
Set P = Sheets("Recap").Rows("1:" & Sheets("recap").[A65536].End(xlUp).Row)
P.Sort P.Columns(2), Header:=xlYes 'tri sur les sites
For Each c In Range("C1", [C65536].End(xlUp))
If c Like "RECAP*" Then
site = c(1, 0)
i = Application.Match(site, P.Columns(2), 0)
Set Plig = Nothing
If IsNumeric(i) Then
Set Plig = P.Rows(i).Resize(Application.CountIf(P.Columns(2), site))
ElseIf site = "" Then
Set Plig = P.Offset(1).Resize(P.Rows.Count - 1) 'tous les sites
End If
i = 2
While c(i, -1) Like "Zone#*" 'analyse de la colonne A
Set Pcol = Nothing
On Error Resume Next 'sécurité
Set Pcol = Evaluate(c(i, -1).Value) 'nom défini
On Error GoTo 0
c(i, 1) = "" 'RAZ
If Not (Plig Is Nothing Or Pcol Is Nothing) Then
n = 0
For Each c1 In Intersect(Plig, Pcol)
If c1 = "OUI" Then n = n + 1
Next
c(i, 1) = n / Intersect(Plig, Pcol).Count 'pourcentage de OUI
End If
i = i + 1
Wend
End If
Next
P.Sort P.Columns(1), Header:=xlYes 'tri sur les dates
End Sub