re:
voici une macro (que j'ai cherché à faire assez rapide) à lier à un bouton en feuil1
Sub Mep_cpt()
Dim i As Long, mondico As Variant, valeur As Double, tablo As Variant, valeu As Variant
Set mondico = CreateObject("Scripting.Dictionary")
For i = 1 To Range("A65536").End(xlUp).Row
If Not mondico.Exists(Range("A" & i).Value & " - " & Range("B" & i).Value) Then
If Range("B" & i) = "C" Then
mondico.Add Range("A" & i).Value & " - " & Range("B" & i).Value, Range("C" & i).Value * -1
Else
mondico.Add Range("A" & i).Value & " - " & Range("B" & i).Value, Range("C" & i).Value
End If
Else
valeur = mondico.Item(Range("A" & i).Value & " - " & Range("B" & i).Value)
mondico.Remove Range("A" & i).Value & " - " & Range("B" & i).Value
If Range("B" & i) = "C" Then
mondico.Add Range("A" & i).Value & " - " & Range("B" & i).Value, valeur + (Range("C" & i).Value * -1)
Else
mondico.Add Range("A" & i).Value & " - " & Range("B" & i).Value, valeur + Range("C" & i).Value
End If
End If
Next
tablo = mondico.keys
valeu = mondico.items
Sheets("Feuil2").Cells.Clear
For i = 0 To UBound(tablo)
With Sheets("Feuil2")
.Range("A" & i + 1) = Left(tablo(i), InStr(tablo(i), "-") - 2)
.Range("B" & i + 1) = Right(tablo(i), 1)
.Range("C" & i + 1) = valeu(i)
End With
Next
End Sub