Sub QSort_Simple(t,deb,fin,numCol,nbCol) REM ======================================== REM = Trier un tableau linéaire, des indices REM = deb à fin, de largeur nbCol REM = t(0) : vide (ou indicatif) REM = exemple : pour trier en entier REM = un tableau à trois colonnes, REM = sur la 2ème colonne, REM = contenant 25 enregistrements (lignes) REM = et qui commence à l'indice 1 REM = utiliser : QSort_Simple t,1,25,2,3 REM ======================================== '1. segmenter le tableau au milieu Dim i, j, c, p, z c = (deb + fin) \ 2 'divison entière Do i = deb: j = fin While LCase(t((i-1)*nbCol+numCol)) <= LCase(t((c-1)*nbCol+numCol)) And i < c:i = i + 1:Wend While LCase(t((j-1)*nbCol+numCol)) >= LCase(t((c-1)*nbCol+numCol)) And j > c:j = j - 1:Wend 'échanger les valeurs If i < j Then For z=1 To nbCol 'à verifier !!! z=1 p = t( (j-1)*nbCol+z ) t( (j-1)*nbCol+z ) = t( (i-1)*nbCol+z ) t( (i-1)*nbCol+z ) = p Next End If i = i + 1: j = j - 1 Loop While i < j '2. appels récursifs If j > deb Then QSort_Simple t,deb,j,numCol,nbCol If i < fin Then QSort_Simple t,i,fin,numCol,nbCol End Sub