Bonjour à tous,
J'ai dans mon projet plusieurs listbox multicolonne que j'alimente de la façon suivante (trois colonnes dans cet exemple) :
Je cherche le moyen de trier les données de cette ListBox, tri sur la 1ere colonne puis la seconde, etc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 With ListeProduit2 .Clear derligne = Split(Worksheets("Produits").UsedRange.Address, "$")(4) For j = 2 To derligne Select Case Worksheets("Produits").Range("A" & j).Value Case Is = ComboNumEssai2.Value .AddItem .List(k, 0) = Worksheets("Produits").Range("A" & j).Value .List(k, 1) = Worksheets("Produits").Range("B" & j).Value .List(k, 2) = Worksheets("Produits").Range("C" & j).Value k = k + 1 Case Else End Select Next j End With
J'ai parcouru le forum sans succès.
Je parle bien de ListBox et non de Combobox. D'ailleurs je trie mes ComboBox à l'aide d'une fonction trouvée je ne sais plus ou :
L'idéal serait pour moi de fonctionner également sur le principe d'une fonction à appeler à chaque fois que j'en ai besoin.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Function ListSort(liSte) ' Sorts the List array in ascending order Dim First As Integer, Last As Integer Dim i As Integer, j As Integer Dim Temp First = LBound(liSte) Last = UBound(liSte) For i = First To Last - 1 For j = i + 1 To Last If liSte(i, 0) > liSte(j, 0) Then Temp = liSte(j, 0) liSte(j, 0) = liSte(i, 0) liSte(i, 0) = Temp End If Next j Next i ListSort = liSte End Function
D'avance merci pour vos idées.
Cordialement,
J'apporte une précision :
la fonction que j'utilise fonctionne bien entendu pour trier une listbox mais que sur une colonne.
ce que je souhaite c'est pouvoir trier sur colonne 1 puis 2 puis 3...
merci
Partager