Trier par ordre alphabétique une liste box

Bonjour, je souhaiterais classer les noms par ordre alphabétique automatiquement a l'ouverture de la liste box.

voici mon code :

Option Explicit

Dim tabloF1
Dim ln&, n&, lnr&, flag&

Private Sub CommandButton1_Click()

    tabloF1 = Range("Ad11:Ad20" & Range("Ad" & Rows.Count).End(xlUp)(2).Row)
    ln = Range("Ad" & Rows.Count).End(xlUp)(2).Row

    For n = 0 To ListBox1.ListCount - 1
        flag = 0
        If ListBox1.Selected(n) Then
            For lnr = 2 To UBound(tabloF1, 1)
                If tabloF1(lnr, 1) = ListBox1.List(n) Then
                    flag = 1
                End If
            Next lnr
            If flag = 0 Then
                Range("Ad" & Range("Ad" & Rows.Count).End(xlUp)(2).Row) = ListBox1.List(n)
            End If
            ln = ln + 1
        End If
    Next n
    Unload Me

End Sub

Private Sub CommandButton2_Click()

    If ListBox2.ListIndex = -1 Then Exit Sub
    For n = 0 To ListBox2.ListCount - 1
        If ListBox2.Selected(n) Then
           Range("Ad11:Ad20").Find(ListBox2.List(n)).Delete Shift:=xlUp
            'Exit For
        End If
    Next n

    End Sub

Private Sub UserForm_Initialize()

    With Sheets("RENCONTRE")
        ListBox1.List = .Range("A4:A47").Value
    End With
    On Error Resume Next
    ListBox2.List = Range("Ad11:Ad20" & Application.Max(Range("Ad" & Rows.Count).End(xlUp).Row)).Value
End Sub

Bonjour

Un exemple de ton fichier serait le bienvenu pour plus de compréhension.

Cordialement

MP envoyé.

Merci

Bonjour

Désolé dossier trop pointu ,je passe le relais

Crdlt

Salut Kayzo,
Salut Joco,

puisque tu peux déterminer les items de cette ListBox, tu les copies quelque part dans l'océan de cellules d'une feuille, tu les tries et, enfin tu affectes cette liste triée à ta ListBox.
Pas oublier d'effacer les cellules ayant servi au tri...


A+

Salut Curulis.

Le problème est que ces données de la listbox change souvent...

Un ligne permettant de les affichés par orde alphabétique dans la listbox serait tellement plus simple si cela existe...

Bonjour Kayzo

Merci de ne pas faire de MP pour vos demandes SVP
Il existe un outil sur ce forum https://www.excel-pratique.com/fr/utilitaires/anonymisation-donnees qui permet d'anonymiser le fichier

Sinon, un exemple de tri d'une ListBox à adapter

Private Sub UserForm_Initialize()
  Set f = Sheets("BD")
  Tbl = f.Range("A2:C" & f.[A65000].End(xlUp).Row).Value
  Tri Tbl, LBound(Tbl), UBound(Tbl), 1
  Me.ListBox1.List = Tbl
End Sub

Sub Tri(a, gauc, droi, 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 = LBound(a, 2) To UBound(a, 2)
          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, colTri)
   If gauc < d Then Call Tri(a, gauc, d, colTri)
End Sub

A+

Rechercher des sujets similaires à "trier ordre alphabetique liste box"