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