Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

récupérer les données SANS doublon d'une plage dans un Combox (2 questions)

D

daniel

Guest
Bonsoir le forum,

Voilà mes problèmes.

1. Dans un userform, j'ai une combobox. J'aimerais récupérer dans cette liste les données d'une plage de cellules (disons A1:A100). Or, dans cette plage, il y a des doublons. Comment faire pour ne récupérer dans la combobox que les données uniques ?

2. Autre problème : si je filtre une plage de données, comment puis-je récupérer le résultat du filtrage dans une combobox ?

Merci à celles et ceux qui pourront me donner un coup de pouce et bonne soirée à tous !

Daniel
 
H

Hervé

Guest
Bonsoir

Pour la question 1 :

dans ce cas la j'utilise une collection, je transfère les infos dans la collection en gérant les doublons pas la clé, puis chaque élément de la collection sans doublons est renvoyé vers la combobox.

En somme la collection me sert de filtre.

Dim item
Dim nom As New Collection
Dim c As Range

On Error Resume Next
For Each c In Range("a1:a" & Range("a65000").End(xlUp).Row)
nom.Add c.Text, c.Text
Next c

For Each item In nom
ComboBox1.AddItem item
Next item

nom.Add c.Text, c.Text =nomdelacollection.add item, clé
On ajoute à la collection la valeur de c et comme clé de l'item également la valeur de c .

Lorsque le code va rencontrer un nom qui est déjà dans la collection (un doublon), comme une clé est unique la macro va déclencher une erreur , que l'on gère par le : on error resume next.

Ainsi dans ta collection tu n'aura que des items uniques, que tu renvoi dans la combobox.

En espérant être clair.

Salut
Hervé

PS : je regarde pour ta question 2, mais là je sais pas faire , lol
 
@

@+Thierry

Guest
Bonjour Daniel, Hervé, le Forum

Rapidos, pour la question 2, il faut s'orienter sur une collection de range avec SpecialCells(xlCellTypeVisible)...

Voir cette démo (entre autre)

Lien supprimé

Bonne Journée
@+Thierry
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…