Insérer les valeurs d'une liste nommée dans un combobox en code VBA

Bonjour,

J'ai crée plusieurs listes nommées que je veux insérer dans des combobox en vba sans passer par les propriétes manuellement. Je sais le faire en créant une variable liste et une variable derniereLigne qui me permet d'alimenter la liste et de l'insérer dans le combobo avec combobox1.List() = liste.

Cependant avec toutes mes colonnes cela ramène trop de lignes de code, je veux donc attribuer à mes combobox mes listes nommées avec un code du style

Combobox1.RowSource = Sheets("liste").Range("Postes")

Le problème c'est que la row source demande une adresse, donc je rajoute le .adresse après range mais cela me prend les données de la première feuille. Y a t-il pas moyen de l'affecter sans forcément faire un sheets(2).visible = true, choper les info recacher la feuille ?

Bonjour,

Ben justement Rowssource c'est à éviter (je viens encore de l'écrire dans un autre post) et votre première méthode est bonne ou alors choisissez la méthode ADDITEM

Sans voir le fichcier essayez ceci plutot --> Combobox1.List = Sheets("liste").Range("Postes").value

Sinon mettez fichier en ligne (avec données non confidentielles). C'est plus facile de comprendre

Crdlt

Merci beaucoup Dan pour votre réponse.

Combobox1.List = Sheets("liste").Range("Postes").value fonctionne à merveille.

Pouvez-vous me dire pourquoi le rowsource est à éviter ?

Bonjour

Pouvez-vous me dire pourquoi le rowsource est à éviter ?

- Rowssource fait partie des "ActiveX" développés par Microsoft qui ne sont pas par exemple exploitables sous excel MAC. Ce qui rend l'application incompatible si par harsard vous voulez l'utiliser sous excel MAC.
- la méthode "RowSource" :
--- ne permet l'utilisation de noms de feuille avec des espaces ou certains caractères spéciaux.
--- peut générer des soucis dans le déroulement des programmes notamment lorsqu'on rend dynamique les plages de cellules concernées par la liste.

Si vraiment quelqu'un voulait utiliser rowssource, je lui dirait de plutôt de définir la propriété dans le code plutot que d'aller la placer dans la propriété de l'objet Combobox ou Listbox

Pour ma part et c'est juste un avis personnel, je trouve que Rowssource est moins souple à utiliser que la méthode Additem ou la methode List.

Cordialement

Rechercher des sujets similaires à "inserer valeurs liste nommee combobox code vba"