bonjour toutes
& tous
pour le dico si on passe pas par une liaison tardive plus rapide?? mais il faut activer la ref..
Sub es()
Dim t(), i As Long, m As New Dictionary, s As Long, te
s = Timer
Application.ScreenUpdating = 0
t = Feuil1.Range("b3:b" & Feuil1.Cells(Rows.Count, 2).End(3).Row)
For i = 1 To UBound(t): m(t(i, 1)) = t(i, 1): Next i
te = m.keys
Call tri(te, LBound(te), UBound(te))
[f3].Resize(1, m.Count) = te
MsgBox Timer - s
End Sub
Sub tri(a, gauc, droi)
ref = a((gauc + droi) \ 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
te = a(g): a(g) = a(d): a(d) = te
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub