Dim Tablo As Object
Dim cle As String
Dim Cpt As Integer
Dim Cles As Variant, Valeurs As Variant
Range("J6").CurrentRegion.ClearContents
Set Tablo = CreateObject("Scripting.Dictionary")
For Cpt = 6 To 10
cle = Range("C" & Cpt).Value & "µ" & Range("E" & Cpt).Value
If Tablo.exists(cle) Then
Tablo.Item(cle) = Tablo.Item(cle) * Range("D" & Cpt).Value
Else
Tablo.Add cle, Range("D" & Cpt).Value
End If
Next
Cles = Tablo.keys
Valeurs = Tablo.items
For Cpt = 0 To Tablo.Count - 1
Range("J" & Cpt + 6).Value = Split(Cles(Cpt), "µ")(0)
Range("L" & Cpt + 6).Value = Split(Cles(Cpt), "µ")(1)
Range("K" & Cpt + 6).Value = Valeurs(Cpt)
Next
Range("J6:L" & Tablo.Count + 5).Sort key1:=Range("J6"), order1:=xlAscending, key2:=Range("L6"), order2:=xlAscending, header:=xlNo
Set Tablo = Nothing