Bonjour le forum,
Bonjour jlp2219
Essaie ceci :
Option Explicit
Sub tri()
Dim a, w(), i As Long, j As Long, dico As Object
Set dico = CreateObject("Scripting.Dictionary")
dico.CompareMode = 1
With Sheets("Feuil1").Cells(1).CurrentRegion
a = .Value
For i = 1 To UBound(a, 1)
For j = 1 To UBound(a, 2) Step 2
If Not dico.exists(a(i, j)) Then
dico(a(i, j)) = VBA.Array(a(i, j), a(i, j + 1))
Else
w = dico(a(i, j))
w(1) = w(1) + a(i, j + 1)
dico(a(i, j)) = w
End If
Next
Next
With .Offset(, .Columns.Count + 1).Resize(dico.Count, 2)
.Value = Application.Index(dico.items, 0, 0)
.Sort key1:=.Cells(1, 2), order1:=xlDescending, Header:=xlNo
End With
End With
End Sub
klin89