Listbox sans doublons dans un userform vba excel ...
Résolu
wire less
Messages postés
233
Date d'inscription
lundi 5 octobre 2009
Statut
Membre
Dernière intervention
29 août 2018
-
28 avril 2015 à 11:07
f894009 Messages postés 17277 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 31 juillet 2025 -
f894009 Messages postés 17277 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 31 juillet 2025 -
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.
A voir également:
- Listbox sans doublons dans un userform vba excel ...
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Excel compter cellule couleur sans vba - Guide
- Trier un tableau excel - Guide
- Doublons photos - Guide
3 réponses
VlkPr3s
Messages postés
235
Date d'inscription
vendredi 30 mai 2014
Statut
Membre
Dernière intervention
27 juin 2016
130
28 avril 2015 à 11:45
28 avril 2015 à 11:45
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.
f894009
Messages postés
17277
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
31 juillet 2025
1 715
Modifié par f894009 le 28/04/2015 à 17:02
Modifié par f894009 le 28/04/2015 à 17:02
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
michel_m
Messages postés
16602
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 314
29 avril 2015 à 06:49
29 avril 2015 à 06:49
Bonjour f89,
petite remarque
si tu instancies par "new" et si tu rends la main au système en fin de macro(et seulement on utilise "new"), tu dois "détruire" l'objet en fin de macro
set unique= nothing
Cordialement
petite remarque
si tu instancies par "new" et si tu rends la main au système en fin de macro(et seulement on utilise "new"), tu dois "détruire" l'objet en fin de macro
set unique= nothing
Cordialement
f894009
Messages postés
17277
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
31 juillet 2025
1 715
>
michel_m
Messages postés
16602
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
Modifié par f894009 le 29/04/2015 à 08:59
Modifié par f894009 le 29/04/2015 à 08:59
Bonjour,
En effet, je l'oublie souvent dans des "petits codes", merci.
En effet, je l'oublie souvent dans des "petits codes", merci.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 761
29 avril 2015 à 07:54
29 avril 2015 à 07:54
Bonjour Messieurs,
Un exemple sans collection, juste un petit traitement d'erreur :
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
28 avril 2015 à 14:02
J'attends encore un peu, si personne n'a de solution, j'essaierais ta solution des boucles qui teste chaque occurrence pour voir si elle sont double :-/
28 avril 2015 à 14:41