Private Sub CommandButton1_Click()
Dim i&, T(), dico, c As Range, ech As Boolean, aux
Set dico = CreateObject("Scripting.Dictionary")
For Each c In Range("a2", [a65000].End(xlUp))
dico(c.Value) = dico(c.Value) + c.Offset(, 1).Value
Next c
ReDim T(0 To dico.Count - 1, 0 To 1)
For i = 0 To dico.Count - 1
T(i, 0) = dico.keys()(i)
T(i, 1) = dico.items()(i)
Next i
Do
ech = False
For i = 0 To dico.Count - 2
If T(i, 0) > T(i + 1, 0) Then
aux = T(i, 0): T(i, 0) = T(i + 1, 0): T(i + 1, 0) = aux
aux = T(i, 1): T(i, 1) = T(i + 1, 1): T(i + 1, 1) = aux
ech = True
End If
Next i
Loop While ech
ListBox1.List = T
End Sub