Liste déroulante sans doublons

Bonjour à tous,

Quelqu'un peut-il me dire comment faire pour récupérer les données d'une colonne (B par exemple), suite à un filtre sur la colonne A, et les mettre ensuite dans une combobox ?

J'arrive à récupérer les données dans la combobox, mais impossible de récupérer uniquement les valeurs uniques.

Sub liste_batiments_Change()

liste_locaux.Clear 'reset à chaque fois la combobox liste_locaux

Filtre_afficher_locaux (liste_batiments.Value) 'permet de filtrer la feuille excel automatiquement (filtre sur colonne A)

    N = liste_batiments.Value
    x = Sheets("SC").Range("A7:A65536").Find(N, lookat:=xlWhole).Row 'permet de récupérer l'indice de la ligne où le filtre commence à prendre effet
    z = Sheets("SC").Range("B" & Rows.Count).End(xlUp).Row

    Set DicoLocaux = CreateObject("Scripting.Dictionary")

    For y = x To z
        If (liste_batiments.Value = Sheets("SC").Cells(y, 1).Value) Then
            DicoLocaux(y) = Sheets("SC").Cells(y, 2).Value
        End If
    Next y

    Me.liste_locaux.List = DicoLocaux.Items 'On remplit la liste avec les élements de la colonne B (suite au filtre sur colonne A)

End Sub

Le souci c'est que je récupère TOUT dans ma combobox... et je ne souhaite avoir que les valeurs uniques...

Exemple : ci-joint une capture d'écran, dans ma seconde combobox, je ne veux avoir que les valeurs "108" et "115"

Merci pour votre retour.

Cordialement

help

Bonjour

Tu devrais joindre ton fichier...

Bye !

Bonjour gmb,

J'ai réussi à me dépatouiller en copiant collant le résultat du filtre dans une feuille intermédiaire ; j'ai ensuite alimenter ma combobox à partir de celle-ci.

C'est ok pour moi.

Merci !

Bonjour,

Comme YAPA de fichier joint, et pas de déclarations, je ne vais pas m'amuser à en construire un pour tester, je te donne donc la piste sur laquelle je m'orienterai :

Au lieu de travailler sur la feuille "SC" je créerai un TabloSC avec les 2 colonnes

Au lieu de créer un Dico filtré avec les éléments filtrés de la colonne 1

Je fabriquerai un Dico (d) non filtré sur sous les éléments de TabloSC

ensuite un mini Dico (df) filtré sur les clefs parsées de d

Ça doit donner quelque chose comme :

Sub filtre(liste_batiments)
Dim df, f, a, i%, S
Set f = Sheets("SC")
Set d = CreateObject("Scripting.Dictionary")
a = f.Range("A7:B" & f.[B65000].End(xlUp).Row)
For i = LBound(a) To UBound(a)
S = a(i, 1) & " " & a(i, 2)
If Not d.Exists(S) Then d.Add (S), ""
Next

a = d.keys
Set df = CreateObject("Scripting.Dictionary")
For i = LBound(a) To UBound(a)
S = Split(a(i))
If liste_batiments = Val(S(0)) Then
If Not df.Exists(S(1)) Then df.Add S(1), ""
End If
Next
'[E2].Resize(df.Count) = Application.Transpose(df.keys) 'débogage...
Me.liste_locaux.List = df.keys
End Sub

Sub test()
filtre 151382
End Sub

A+

Rechercher des sujets similaires à "liste deroulante doublons"