J'ai aussi testé les 2 dernières parties de code en les enlevant et en lancant la macro pour voir à quoi c'était lié si il y a erreur.
La 2ème partie c'est Ok.
Par contre la premiere :
' Trier par le milieu et mémorise la ligne cible
' Trie les nombres en ordre croissant (ce qu'Excel ne fait pas)
Sub TrierFIN(ByRef TBCB, AdG, AdD)
Dim Ml
Dim Ag, Ad, Buff
Ml = TBCB((AdG + AdD) \ 2)
Ag = AdG: Ad = AdD
Do
Do While Cmp(Ml, TBCB(Ag)): Ag = Ag + 1: Loop
Do While Cmp(TBCB(Ad), Ml): Ad = Ad - 1: Loop
If Ag <= Ad Then
Buff = TBCB(Ag): TBCB(Ag) = TBCB(Ad): TBCB(Ad) = Buff
Buff = TL(Ag): TL(Ag) = TL(Ad): TL(Ad) = Buff
Ag = Ag + 1: Ad = Ad - 1
End If
Loop While Ag <= Ad
If Ag < AdD Then Call TrierFIN(TBCB, Ag, AdD)
If AdG < Ad Then Call TrierFIN(TBCB, AdG, Ad)
End Sub
Si je l'enlève , le tri est toujours d'actualité.
Quelle est donc l'utilité de ce passage ?