Tri alphabétique Listbox dans un Usf

Jeremy011991

XLDnaute Nouveau
Bonjour à tous,

J'ai créer un UserForm.
J'y ai inséré une ListBox, avec pour source une plage de 7 ou 8 colonnes. Cependant, je souhaiterai effectuer un tri alpha et croissant, sur la première colonne..(et bien évidemment que les colonnes relatives à cette colonnes se trient également).

Si quelqu'un connait une solution, un site qui propose une solution...ce serait avec grand plaisir.

Merci à vous d'avance ! :)
 

Pièces jointes

  • sdfsdf.xlsm
    17 KB · Affichages: 61
  • sdfsdf.xlsm
    17 KB · Affichages: 69
  • sdfsdf.xlsm
    17 KB · Affichages: 73
Dernière édition:

Jeremy011991

XLDnaute Nouveau
Re : Tri alphabétique Listbox dans un Usf

Merci pour ta réponse. J'avais déjà "tenté" une synthaxe de ce genre là...et en appliquant ces paramètres, j'ai un problème d'execution 70 et une "Permission refusée".
A priori, tant que je ne résouds pas ce problème de permission, je ne saurai dire si ta solution fonctionne..

Une idée ?
 

Pièces jointes

  • sdfsdf.xlsm
    20.3 KB · Affichages: 69
  • sdfsdf.xlsm
    20.3 KB · Affichages: 66
  • sdfsdf.xlsm
    20.3 KB · Affichages: 51

Jeremy011991

XLDnaute Nouveau
Re : Tri alphabétique Listbox dans un Usf

Merci pour ta réponse. J'avais déjà "tenté" une synthaxe de ce genre là...et en appliquant ces paramètres, j'ai un problème d'execution 70 et une "Permission refusée".
A priori, tant que je ne résouds pas ce problème de permission, je ne saurai dire si ta solution fonctionne..

Une idée ?
 

Pièces jointes

  • sdfsdf.xlsm
    20.3 KB · Affichages: 63
  • sdfsdf.xlsm
    20.3 KB · Affichages: 74
  • sdfsdf.xlsm
    20.3 KB · Affichages: 75

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Tri alphabétique Listbox dans un Usf

Voir PJ


Code:
Private Sub UserForm_Initialize()
   With Sheets("feuil1")
     Me.ListBox1.List = .Range("c6:d" & .[c65000].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)
   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

JB
 

Pièces jointes

  • FormListBoxTrie.xlsm
    19.7 KB · Affichages: 74
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 685
Messages
2 090 939
Membres
104 703
dernier inscrit
romla937