Sub résultats()
With ActiveSheet
fin = .Range("A" & .Rows.Count).End(xlUp).Row + 1 'dernière ligne de la feuille +1 pour pouvoir mettre le dernier calcul
tabdata = .Range("A2:H" & fin).Value 'toute la feuille dans un tablo
'initialisation des calculs
ProdJ = 0
ProdA = 0
sommeJ = 0
sommeA = 0
For i = LBound(tabdata, 1) To UBound(tabdata, 1) 'pour chaque ligne
If tabdata(i, 5) <> 0 Then 'si juillet<>0
ProdJ = ProdJ + tabdata(i, 4) * tabdata(i, 5) 'on caclule le produit Juillet*valeur
sommeJ = sommeJ + tabdata(i, 4) 'on calcule la somme
End If
If tabdata(i, 6) <> 0 Then 'idem pour aout
ProdA = ProdA + tabdata(i, 4) * tabdata(i, 6)
sommeA = sommeA + tabdata(i, 4)
End If
If tabdata(i, 3) = "" Then 'si on est sur une ligne vide
tabdata(i, 7) = ProdJ / sommeJ 'on met le résultat pour juillet
tabdata(i, 8) = ProdA / sommeA 'on met le résultat pour aout
'réinitialise les calculs
ProdJ = 0
ProdA = 0
sommeJ = 0
sommeA = 0
End If
Next i
.Range("A2").Resize(UBound(tabdata, 1), UBound(tabdata, 2)) = tabdata 'on colle le tablo final dans la feuille
End With
End Sub