Tri alphabétique Listbox dans un Usf

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

Dernière édition:
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

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

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

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 listbox
Réponses
18
Affichages
299
Retour