Sub es()
Dim t(), i As Long, m As Object, j As Long, c As Byte, z
Set m = CreateObject("Scripting.Dictionary")
t = Feuil1.Range("a2:c" & Feuil1.Cells(Rows.Count, 1).End(3).Row)
For i = 1 To UBound(t)
z = t(i, 1) & t(i, 2)
If m.Exists(z) Then
t(m(z), 3) = t(m(z), 3) + t(i, 3)
Else
x = x + 1
t(x, 1) = "Total " & t(i, 1)
t(x, 2) = "Total " & t(i, 2)
t(x, 3) = t(i, 3): m(z) = x
End If
Next i
Feuil1.[e2].Resize(x, 3) = t
End Sub