pour le tableau, peux-tu decoder comme tu sais si bien le faire
Euh, j'avais noté : « Par contre, pour la macro Tri tirée aussi de JB, vu que c'est une fonction récursive, je ne rentrerai pas dans les détails, je la comprends tout juste, donc j'aurai du mal à expliquer ... Mais on va dire que l'important, c'est que ça marche ... » ... Je peux essayer d'éclaircir, mais, ce sera pas forcément limpide, ni complètement juste !
"Sub Tri(Tableau, Gauche, Droite) ' Quick sort d'après JB : boisgontierjacques.free.fr
Référence = Tableau((Gauche + Droite) \ 2)
Gauche est la première entrée du tableau, Droite la dernière (bornes). On se base donc sur la valeur rentrée au milieu du tableau.
NewGauche = Gauche: NewDroite = Droite
On fixe les bornes qui vont évoluer pendant la sub
Do
Boucle faisant référence à la ligne rouge en dessous. L'inversion des bornes traduira que le tableau est trié
Do While Tableau(NewGauche) < Référence: NewGauche = NewGauche + 1: Loop
On boucle tant que la partie basse du tableau est bien triée
Do While Référence < Tableau(NewDroite): NewDroite = NewDroite - 1: Loop
De même pour la partie haute
If NewGauche <= NewDroite Then
Si la partie basse n'est pas encore passée au dessus de la partie haute
Temporaire = Tableau(NewGauche): Tableau(NewGauche) = Tableau(NewDroite): Tableau(NewDroite) = Temporaire
On interverti les 2 valeurs du tableau qui sont à l'envers en passant par une variable temporaire
NewGauche = NewGauche + 1: NewDroite = NewDroite - 1
On rétrécit les bornes
End If
Fin du test
Loop While NewGauche <= NewDroite
On boucle temps que les bornes ne sont pas rejointes
If NewGauche < Droite Then Call Tri(Tableau, NewGauche, Droite)
Si la nouvelle borne basse n'a pas rejoint la borne haute de départ, on rappelle la même fonction (d'où le titre de fonction récursive) pour trier la partie haute qui n'est pas encore triée
If Gauche < NewDroite Then Call Tri(Tableau, Gauche, NewDroite)
De même si la nouvelle borne haute n'a pas rejoint la borne basse de départ.
End Sub"
Comme depuis le début, tu échange les valeurs dans ton tableau, le tableau est trié à l'arrivée...
Je sais pas si c'est très clair (vu que ce l'est pas entièrement pour moi ...).
n.b: est-ce que tu donnerais des cours dans l'Ouest,
Si tu jette un oeil à mon profil (il y a des problèmes d'affichage actuellement sous l'avatar), tu verras que je suis plutôt très à l'est, désolé...
car tes explications sont toujours incroyablement claires pour une novice comme moi,
je sais qu'il me faudra des années avant d'atteindre ton niveau et d'avoir ta réactivité, ou alors écris un livre avec tes modèles et explications, je serai ta premiere cliente (et je ne rigole pas !)
C'est gentil, mais excuses-moi si moi, ça me fait rigoler . Il y a des tas de gens sur ce forum qui dépassent largement ma connaissance d'Excel ... Mes explications sont peut-être assez claires, mais il me semble que j'ai enseigné un peu il y a quelques années, et mon père était directeur d'école, j'ai peut-être hérité d'un peu de sa pédagogie . De là à écrire un bouquin, il y en a déjà bien assez sur Excel, dont certains sont très clairs. Sans compter que je n'ai pas vraiment le temps ...