Sub MacroDranreb()
Dim Rng As Range, TE(), LE As Long, TS(), LS As Long, C As Long
Set Rng = ActiveSheet.UsedRange
Set Rng = Rng.Rows(2).Resize(Rng.Rows.Count - 1)
TE = Rng.Value
ReDim TS(1 To UBound(TE, 1), 1 To UBound(TE, 2))
LE = 1
Do
LS = LS + 1
For C = 1 To 3
TS(LS, C) = TE(LE, C)
Next C
Do
For C = 4 To UBound(TE, 2)
If VarType(TE(LE, C)) = vbDouble Then TS(LS, C) = TS(LS, C) + TE(LE, C)
Next C
LE = LE + 1
If LE > UBound(TE, 1) Then Exit Do
Loop Until TE(LE, 1) <> TS(LS, 1)
Loop Until LE > UBound(TE, 1)
Rng.Value = TS
End Sub