[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
296

Statistiques des forums

Discussions
312 229
Messages
2 086 423
Membres
103 206
dernier inscrit
diambote