Sub Macro1()
Dim cel As Range 'déclare la variable cel (CELlule)
Dim dest As Range 'déclare la variable dest (DESTination)
Dim rH As Range 'déclare la variable rH (Recherche dans la colonne H)
Dim rA As Range 'déclare la variable rA (Recherche dans la colonne A)
Dim pa As String 'déclare la variable pa (Première Adresse)
Dim trA As Long 'déclare la variable trA (Total Recherche colonne A)
Dim nb As Integer 'déclare la variable nb (NomBre d'occurrences)
With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
For Each cel In .Range("A2:A" & .Range("A65536").End(xlUp).Row) 'boucle sur toutes les cellules éditée cel de la colonne A
Set rH = .Range("H7:H" & .Range("H65536").End(xlUp).Row).Find(cel.Value, Range("H7"), xlValues, xlWhole) 'définit la variable rH
If rH Is Nothing Then 'condition : si il n'existe aucune occurrence de rH dans la colonne H
trA = 0 'définit la variable trA
Set dest = .Range("H65536").End(xlUp).Offset(1, 0) 'définit la variable dest
Set rA = .Columns(1).Find(cel.Value, , xlValues, xlWhole) 'définit la variable rA
If Not rA Is Nothing Then 'condition 2 : si il existe au moins une occurrence de rA dans la colonne A
pa = rA.Address 'définit la variable pa
Do 'éxécute
trA = trA + rA.Offset(0, 1) 'redéfinit la variable trA
Set rA = Columns(1).FindNext(rA) 'redéfinit la variable rA
Loop While Not rA Is Nothing And rA.Address <> pa 'boucle tant qu'il existe des occurrences de rA ailleurs qu'en pa
'placement des données
dest.Value = cel 'place la référance
nb = Application.WorksheetFunction.CountIf(Columns(1), cel.Value) 'définit la variable nb
dest.Offset(0, 1).Value = nb 'place le nombre d'occurrences trouvées
dest.Offset(0, 2).Value = trA / nb 'plce la moyenne
End If 'fin de la condition 2
End If 'fin de la condition 1
Next cel 'prochaine cellule éditée cel de la boucle
End With 'fin de la prise en compte de l'onglet "Feuil1"
End Sub