A tester :
Sub MoyenneXlignes()
Dim Lig As Long, LigMax As Long, Pas As Integer
With Sheets("MaFeuille") 'Nom de feuille à adapter
Pas = 12 'Nombre de lignes à intégrer
LigMax = .Range("A" & .Rows.Count).End(xlUp).Row 'Détermine la dernière ligne non vide en colonne A
For Lig = Pas + 1 To LigMax Step Pas
.Range("A", Lig) = Application.AverageIf(.Range(.Range("A" & Lig - Pas), .Range("A" & Lig - 1)), ">0") 'Inscrit le résultat "en dur"
'.Range("A", Lig).FormulaR1C1 = "=AVERAGEIF(R[-" & Pas & "]C:R[-1]C,"">0"")" 'Inscrire la formule Excel
Next Lig
End With
End Sub
Il est possible d'ajouter une seconde boucle pour répéter la formule sur différentes colonnes. Auquel cas on peut remplacer .Range("A" & Lig -1) par .Cells(-1, 1) par exemple.