helene genest
XLDnaute Nouveau
bonjour a tous
je crois que j'ai envoyer ma demande pour m'aide sur le mauvais site du forum car pascal xld m'a conseiller d'essayer celui-ci
hier j,ai eu trois intervenant pour m'aider a coder une listbox avec multi colonne et le trier en ordre alpha , mrs bongontier ma repondu de facon super son code etait extra , la dans ce code il trie la listbox soit la colonne de B et en ordre alpha et inscrit aussi les autres colonnes dans la listbox soit jusqu'a H
donc ma question j'ai essayer de me servir de son code pour faire l'inverse soit trier en ordre decroissant j'ai donc tenter de modifier son code simplement en changant les < par des > croyant que ceci trierais dans l'autre sens soit en decroissant
je crois que je me suis tromper
alors voici ce code
Private Sub UserForm_Initialize()
With Sheets("Liste")
Me.ListBox1.List = .Range("B3:H" & .[B65000].End(xlUp).Row).Value
End With
a = Me.ListBox1.List
NbCol = UBound(a, 2) - LBound(a, 2) + 1 ' nb de colonnes
Call tri(a, LBound(a), UBound(a), NbCol, 0) ' 1 ere colonne
Me.ListBox1.List = a
End Sub
Sub tri(a, gauc, droi, NbCol, colTri) ' Quick sort
ref = a((gauc + droi) \ 2, colTri)
g = gauc: d = droi
Do
Do While a(g, colTri) < ref: g = g + 1: Loop
Do While ref < a(d, colTri): d = d - 1: Loop
If g <= d Then
For c = 0 To NbCol - 1
temp = a(g, c): a(g, c) = a(d, c): a(d, c) = temp
Next
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi, NbCol, colTri)
If gauc < d Then Call tri(a, gauc, d, NbCol, colTri)
End Sub
alors merci de votre esperant que je fais ma demande au bon endroit sur le site
merci helene genest
je crois que j'ai envoyer ma demande pour m'aide sur le mauvais site du forum car pascal xld m'a conseiller d'essayer celui-ci
hier j,ai eu trois intervenant pour m'aider a coder une listbox avec multi colonne et le trier en ordre alpha , mrs bongontier ma repondu de facon super son code etait extra , la dans ce code il trie la listbox soit la colonne de B et en ordre alpha et inscrit aussi les autres colonnes dans la listbox soit jusqu'a H
donc ma question j'ai essayer de me servir de son code pour faire l'inverse soit trier en ordre decroissant j'ai donc tenter de modifier son code simplement en changant les < par des > croyant que ceci trierais dans l'autre sens soit en decroissant
je crois que je me suis tromper
alors voici ce code
Private Sub UserForm_Initialize()
With Sheets("Liste")
Me.ListBox1.List = .Range("B3:H" & .[B65000].End(xlUp).Row).Value
End With
a = Me.ListBox1.List
NbCol = UBound(a, 2) - LBound(a, 2) + 1 ' nb de colonnes
Call tri(a, LBound(a), UBound(a), NbCol, 0) ' 1 ere colonne
Me.ListBox1.List = a
End Sub
Sub tri(a, gauc, droi, NbCol, colTri) ' Quick sort
ref = a((gauc + droi) \ 2, colTri)
g = gauc: d = droi
Do
Do While a(g, colTri) < ref: g = g + 1: Loop
Do While ref < a(d, colTri): d = d - 1: Loop
If g <= d Then
For c = 0 To NbCol - 1
temp = a(g, c): a(g, c) = a(d, c): a(d, c) = temp
Next
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi, NbCol, colTri)
If gauc < d Then Call tri(a, gauc, d, NbCol, colTri)
End Sub
alors merci de votre esperant que je fais ma demande au bon endroit sur le site
merci helene genest