Tri plage nommé pour alimentation userform

Bonjour Le forum,

J'utilise une plage nommé qui alimente ma Listbox, jusque la tous va bien et plus précisément les colonnes 3 et 4 de la plage!

 ListBox1.List() = [Liste_nom].Columns(3).Resize(, 2).Value
    ListBox1.ListIndex = -1

Mais je voudrai trié les données de la colonne 3 et de la 4 par ordre alphabétique sans avoir à trié ma feuille alimenter la liste puis re-triée ma feuille pour la remettre dans sont état initiale.

Mais j'ai pas trouver comment classé les données lors de l'alimentation de la listbox,

Si quelqu'un a une piste....

Merci à vous

Bonjour

Essaie comme ça :

Private Sub UserForm_initialize()

    Dim strTemp, i&, j&

    ListBox1.List() = [Liste_nom].Columns(3).Resize(, 2).Value
    ListBox1.ListIndex = -1

    With Me.ListBox1
        For i = 0 To .ListCount - 1
            For j = 0 To .ListCount - 1
                If .List(i) < .List(j) Then
                    strTemp = .List(i)
                    .List(i) = .List(j)
                    .List(j) = strTemp
                End If
            Next j
        Next i
    End With
End Sub

Résultat ?

Bye !

Just nickel !

Parcontre il faut que je reprennes mon code du derrière lol

dans l userform Umoins

Private Sub CommandButton1_Click()

    If ListBox1.ListIndex > -1 Then
        With Me.ListBox1
            For j = 0 To .ListCount - 1
                If .Selected(j) = True Then
                    With Sheets(2)
                    .Rows(j + 2).Delete
                    Unload Me
                    End With
                End If
            Next j
        End With
    Else: MsgBox ("Selectionner au moins un utilisateur")
    End If
End Sub

He he je me basais sur le listindex / ligne de la feuille mais maintenant le listindex ne suis plus le meme ordre.

On doit pouvoir fair ca avec un Find ? ( le but étant de supprimé la ligne correspondant aux noms sélectionnés )

Désolé, je ne vois pas.

Bye !

Merci qd meme

Bonjour gmb,

Je reviens car le tri se fait très bien sur la première colonne de la listbox mais je viens de me rendre compte que la deuxième ne suis pas, les valeurs restent fixe.

As tu une idée pour triée les valeurs de la colonne1 et que les valeurs de la colonne2 suivent le mouvement? sachant que je tri des noms et que si possible les prénoms suivent

Merci

La solution pour supprimer les lignes sélectionnées

Dim Nam As String
    If ListBox1.ListIndex > -1 Then
        With Me.ListBox1
            For j = 0 To .ListCount - 1
                If .Selected(j) = True Then
                Nam = ListBox1.List(j)
                    With Sheets(2)

                Set rg = .Columns(3).Find(Nam, .Cells(1, 3))
                .Rows(rg.Row).Delete
                    Unload Me
                    End With
                End If
            Next j
        End With
    Else: MsgBox ("Selectionner au moins un utilisateur")
    End If

Solution qui fonctionne mais j'aurai aimé trouvé la solution en utilisant la plage nommé, mais bon vu l'heure je ne fais plus le difficile,

Bon reste plus que le tri des deux colonnes en meme temps

Erratum

code trouvé chez BoisGontier,

J'ai lu les explications mais j'ai pas tous compris mais ca fonctionne Nickel

Private Sub LTriNom_Click()
   Dim a()
   a = Me.ListBox1.List
   NbCol = UBound(a, 2) - LBound(a, 2) + 1
   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

Bonjour

une idée pour triée les valeurs de la colonne1 et que les valeurs de la colonne2 suivent le mouvement?

Un essai à tester et adapter si ok

Bye !

10classeur1-v1.xlsm (27.25 Ko)

désolé pour la reponse tardive comme j'avais trouver une solution via le site de Jacques Boiscontier.

En adaptant ca fonctionne aussi

Encore merci GMB

Rechercher des sujets similaires à "tri plage nomme alimentation userform"