lermite a écrit :
T'est pas fort curieux... voir le lien d'explication que je t'ai mis dans mon poste précédant
Et j'ai pas l'habitude de mettre du code qui sert à rien
lol ! avec les modifications de code entre les deux fichiers j'en ai complètement oublié ton lien !!
Je regarde ça.
Ok j'ai vu ton annotation de cours.
Fonction qui peut s'avérer extrèmement utile si du numéraire dans les noms en effet.
Tu es obligé de faire un module à part pour cela ? Pas possible de le mettre directement dans le code principal de l'UF ?
Et qu'appelles-tu par plus lent ? En tout cas pour mon type de fichier ça ne change strictement rien à la rapidité. J'en déduis donc que ça doit être lié à des types de formulaires particuliers
Pour le code à a fin je faisais allusion à ceci :
' 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
' Trier par le milieu ,suivant une idée de Jacques Boisgontier
' Trie les nombres en ordre croissant (ce qu'Excel ne fait pas)
Sub Trier(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
Ag = Ag + 1: Ad = Ad - 1
End If
Loop While Ag <= Ad
If Ag < AdD Then Call Trier(TBCB, Ag, AdD)
If AdG < Ad Then Call Trier(TBCB, AdG, Ad)
End Sub
- Soit c'est ça qui organise le tri et j'ai donc pas compris
- Soit le tri est géré par autre chose et c'est une manière différente de le faire dans ce cas j'ai compris dans les grande lignes