Pas de doublons dans une combobox alimenté par la liste de fichiers d'un repertoire

Carnage029

XLDnaute Occasionnel
Bonjour à tous, je me permet de solliciter votre aide,

J'ai alimenté une combobox avec le code suivant :

Code:
    Dim MonRepertoire, fa, fe, x As Integer
    Set fso = CreateObject("Scripting.FileSystemObject")
    chem = "C:\mondossier\"
    MonRepertoire = chem & UserForm1.siglecombobox.Text
    x = 1
    For Each fa In fso.GetFolder(MonRepertoire).Files
        lsigle = Len(UserForm1.siglecombobox.Text)
        fe = fa.Name
        fe = Mid(fe, lsigle + 2, 3)
        UserForm1.devisecombobox.AddItem fe
        x = x + 1
    Next fa

mais je n'arrive pas à faire apparaitre dans la combobox que les uniques (sans doublons, voir plus)

J'ai vu des méthodes pour enlever les doublons, mais avec des listes sur des feuilles...

Merci de votre aide
 

tototiti2008

XLDnaute Barbatruc
Re : Pas de doublons dans une combobox alimenté par la liste de fichiers d'un reperto

Bonjour Carnage,

Les dictionnaires (Scripting.Dictionary) permettent de supprimer les doublons

un exemple à l'aveugle, je n'ai pas testé

Code:
    Dim MonRepertoire, fa, fe, x As Integer, Dico, Tablo
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set Dico = CreateObject("Scripting.Dictionary")
    chem = "C:\mondossier\"
    MonRepertoire = chem & UserForm1.siglecombobox.Text
    x = 1
    For Each fa In fso.GetFolder(MonRepertoire).Files
        lsigle = Len(UserForm1.siglecombobox.Text)
        fe = fa.Name
        fe = Mid(fe, lsigle + 2, 3)
        Dico(fe) = fe
        x = x + 1
    Next fa
    Tablo = Dico.keys
    Set Dico = Nothing
    Set fso = Nothing
    For x = LBound(Tablo) To UBound(Tablo)
        UserForm1.devisecombobox.AddItem Tablo(x)
    Next x
 

Statistiques des forums

Discussions
311 740
Messages
2 082 041
Membres
101 879
dernier inscrit
Arthur M