1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
Sub Test1()
Dim DMonth As Integer
Dim SrcRng As Range
Dim SumVal As Double, CntVal As Integer
Dim RowN As Integer, ColN As Integer
Set SrcRng = ThisWorkbook.Worksheets("Données").Range("A3").CurrentRegion 'Ca revient à faire un CTLR+ * excel sur le range A3
CntVal = 0
SumVal = 0
' Attention, ça ne marche que si données d'entrées sont triée par date croissante (col A), sinon, il faut lz faire
For RowN = 2 To SrcRng.Rows.Count
If IsDate(SrcRng(RowN, 1)) Then 'Peut être supprimé si c'est toujours une date
DMonth = Month(SrcRng(RowN, 1)) ' On extrait le mois de la date, cf la sortie debug juste après
Debug.Print RowN, SrcRng(RowN, 1), DMonth
If DMonth = 4 Then 'Si c'est avril, on reset les compteur nb de valeurs et somme des valeurs
CntVal = 0
SumVal = 0
End If
CntVal = CntVal + 1 ' Dans tous les cas, on incrémente le compteur et la somme (pour le calcul de la moyenne)
SumVal = SumVal + SrcRng(RowN, 7)
SrcRng(RowN, 9) = SumVal / CntVal ' et on sort la moyenne sur la 9eme colonne du range (col "I")
End If
Next RowN
End Sub |
Partager