Den här formeln (i d2) gör det du vill (kopiera ner så långt det behövs):
=OM(A2<>A1;B2/C2;D1+B2/C2)
Du borde kunna gör ett makro utifrån samma logik. Dvs varje gång värdet i A-kolumnen byts räknar den ut radens procent. Annars adderas föregående rad.
Exemel där du återanvänder formeln
Sub Makro1()
Dim rOmr As Range
Set rOmr = Range("C2", Range("C2").End(xlDown)).Offset(0, 1)
rOmr.FormulaR1C1 = "=IF(RC[-3]<>R[-1]C[-3],RC[-2]/RC[-1],RC[-2]/RC[-1]+R[-1]C)"
rOmr.Value = rOmr.Value
End Sub
Eller så här om du, av någon outgrundlig anledning, inte vill använda excels arbetsbladsfunktioner
Sub Makro2()
Dim rOmr As Range
Set rOmr = Range("D2")
Do
rOmr.Value = rOmr.Offset(0, -2).Value / rOmr.Offset(0, -1).Value
If rOmr.Offset(0, -3).Value = rOmr.Offset(-1, -3).Value Then
rOmr.Value = rOmr.Value + rOmr.Offset(-1, 0).Value
End If
Set rOmr = rOmr.Offset(1, 0)
Loop Until rOmr.Offset(0, -3).Value = ""
End Sub