Tri rapide (QuickSort) en VBA

Il est parfois utile de trier une liste de chaînes de caractères en VBA. Euh… en fait, sur Access, ça ne sert pas tous les jours, puisqu’on stocke souvent les valeurs dans des tables, et qu’on a des requêtes graphiques ou SQL pour trier le tout ! 🙂

Mais ça n’est pas toujours le cas : vous pouvez avoir des données spécifiques à VBA, et vouloir les trier sans les stocker. Cet article donne l’une des approches possibles.

Principe

Voici donc un exemple de tri rapide (algorithme QuickSort). J’ai à peine adapté un bout de code provenant du livre « Ready-to-Run Visual Basic Algorithms » de Rod Stephens (l’adresse ici). Vous trouverez aussi des compléments sur la page Wikipédia Tri rapide, si vous voulez écrire votre propre version.

Le code

Recopiez ce qui suit dans un module standard de votre base de données :

La procédure reçoit 3 paramètres :

  • Le tableau de chaînes à trier.
  • L’indice de départ pour le tri (en général : 1).
  • L’indice de fin pour le tri (en général : le nombre d’éléments dans le tableau).

Tester

Et pour tester, recopiez aussi ceci :

Il vous suffit ensuite :

  1. De faire apparaître la fenêtre Exécution (Ctrl + G).
  2. De placer votre curseur dans le deuxième bout de code (entre Sub TestQuickSort() et End Sub).
  3. De cliquer sur l’icône Exécuter Sub/UserForm.

Vous devriez obtenir ceci dans la fenêtre Exécution :
QuickSort
Rendez-vous demain pour une application pratique du QuickSort…

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *