[VBA]Alimenter une listbox sans doublons et par ordre alphabétique

FAQ XLD

XLDnaute Nouveau
Voici une méthode pour alimenter une listbox sans doublons et par ordre alphabétique

Ce code doit se situer dans le code de l'userform concerné

Code:
PrivateSub UserForm_Initialize()
Dim c As Range
Dim tablo()
Dim i As Integer, j As Integer
Dim temp As String
Dim present As Boolean

ReDim tablo(1 To 1)
tablo(1) = Cells(1, 1)
For Each c In Sheets("Feuil1").Range("A1:A" & Range("a65536").End(xlUp).Row)
    present = False
    For i = 1 To UBound(tablo)
        If tablo(i) = c Then present = True
    Next i
    If Not present Then
        ReDim Preserve tablo(1 To UBound(tablo) + 1)
        tablo(UBound(tablo)) = c
    End If
    For i = 1 To UBound(tablo)
        For j = 1 To UBound(tablo)
            If tablo(i) < tablo(j) Then
                temp = tablo(i)
                tablo(i) = tablo(j)
                tablo(j) = temp
            End If
        Next j
    Next i
Next c

ListBox1.List = tablo

End Sub
________________________________________________________________

Ce code fut proposé sur un fil par Hervé
 
Dernière édition:

Discussions similaires

Réponses
11
Affichages
298

Statistiques des forums

Discussions
312 322
Messages
2 087 289
Membres
103 508
dernier inscrit
max5554