Listbox sans doublons dans un userform vba excel ...
Résolu
wire less
Messages postés
247
Date d'inscription
Statut
Membre
Dernière intervention
-
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
Bon sujet classique ... dsl j'ai parcouru les forums mais je n'arrive toujours pas à créer ma listbox sans doublons !!
Mon script ... J'ai une combobox1 et je souhaite que lorsque je clic dessus, je viennes alimenter ma listbox. Ma listbox se rempli ... sans avoir deux fois le même élément !!
Du coup j'ai fait un :
Voila ... simplissime ... (oui bon ... c'est ce que j'ai trouvé sur les forums ... c'étais pas mon idée ... j'ajoute les éléments de ma combobox dans une "Collection", (apparemment les collections n'acceptent pas les doublons), puis je transfert ma collection dans listbox.
Et bien ... devinez ... ça ne marche pas :'-(
Quelqu'un aurait il une idée ou une correction ... ou une autre solution ?
Merci.
Mon script ... J'ai une combobox1 et je souhaite que lorsque je clic dessus, je viennes alimenter ma listbox. Ma listbox se rempli ... sans avoir deux fois le même élément !!
Du coup j'ai fait un :
Private Sub ComboBox1_Click()
Dim Unique As New Collection
Dim Valeur As Range
Unique.Add ComboBox1.Value
For Each Valeur In Unique
Me.ListBox1.AddItem Valeur
Next Valeur
Voila ... simplissime ... (oui bon ... c'est ce que j'ai trouvé sur les forums ... c'étais pas mon idée ... j'ajoute les éléments de ma combobox dans une "Collection", (apparemment les collections n'acceptent pas les doublons), puis je transfert ma collection dans listbox.
Et bien ... devinez ... ça ne marche pas :'-(
Quelqu'un aurait il une idée ou une correction ... ou une autre solution ?
Merci.
3 réponses
-
J'ai fait un truc comme toi pour mon application c# et pour éviter les doublons tu dois tester les éléments du ListBox en gros tu test le précédent par rapport au suivant et s'il sont différent tu le laisse dedans sinon tu supprimes une des deux occurrences.
-
Bonjour a vous deux,
Dim Unique As New Collection Dim i As Integer Dim Valeur As Variant Private Sub ComboBox1_Click() On Error Resume Next Unique.Add Item:=ComboBox1.Text, Key:=CStr(ComboBox1.ListIndex) On Error GoTo 0 'raz listbox ListBox1.Clear 'Boucle sur le contenu de la collection pour alimenter la ListBox For Each Valeur In Unique Me.ListBox1.AddItem Valeur Next Valeur End Sub -
Bonjour Messieurs,
Un exemple sans collection, juste un petit traitement d'erreur :Private Sub ComboBox1_Click() On Error GoTo fin Me.ListBox1 = ComboBox1 If ListBox1.ListIndex = -1 Then GoTo fin Exit Sub fin: Me.ListBox1.AddItem ComboBox1 End Sub