Remplir liste déroulante dans un userform avec array

Bonjour à tous,

Je suis novice en VBA, et je surfe et écume internet pour trouver une solution à mon problème, mais rien n'y fait... Si vous avez des pistes de solutions, je suis preneur...

Mon idée est de mettre à disposition de l'utilisateur un ensemble de comboboxs avec des choix prédéfinis, sans lui permettre de taper autre chose que ces choix prédéfinis..

J'ai intégré dans un Userform 2 combobox pour lesquelles je veux pouvoir proposer des valeurs prédéfinies, stockées dans un array. Malheureusement, pour l'instant aucune solution satisfaisante: quand je lance mon userform et que je clique sur les boutons de mes comboboxs, une cellule vide apparaît.. Je peux en revanche y écrire ce que je veux.

J'ai tenté avec Array & Split mais rien n'y fait..

Ci-dessous, mon code. Est-ce que je fais quelque chose de mal? Peut-être y-a-t-il une propriété dans mon userform que je dois modifier?

j'ai entre autres ajouté des () après list, précédé combobox de Me. mais rien n'y fait...

Private Sub UserForm1_Initialize()

ComboBox1.List = Array("", "Réserve", "Attente")
ComboBox2.List = Array("", "Cinéma", "Télévision","Autres")

End Sub

Un immense merci à vous qui me lirez et vous pencherez sur mon problème!

Bonne journée!

Bonjour Vicovico,

En développement on évite de créer des listes en dur, mieux vaut les mettre dans une feuille nommée "Params" par exemple
Et faire appel à ces listes dans la feuille

Sinon voici le code approprié

Private Sub UserForm_Initialize()
  Me.ComboBox1.List = Split(",Réserve,Attente", ",")
  Me.ComboBox2.List = Split(",Cinéma,Télévision,Autres", ",")
End Sub

@+

Bonjour vicovico,

La syntaxe est bonne, je pense que le problème vient du fait que tu mets "" dans ton Array. J'imagine que c'est pour sélectionner tout, privilégie plutôt l'astérisque :

Private Sub UserForm1_Initialize()

ComboBox1.List = Array("*", "Réserve", "Attente")
ComboBox2.List = Array("*", "Cinéma", "Télévision","Autres")

End Sub

À noter que tu pourrais également créer sur ton fichier une feuille "Paramètre" et y inscrire les listes dedans. Cela peux être plus pratique que de devoir rentrer dans le code pour ajouter un élément à la liste par exemple !

Bonjour Baboutz et Bruno,

Merci pour vos réponses rapides!

Malheureusement, la solution de Baboutz n'a rien donné.. Mais celle de Bruno fonctionne bien!

Existe-t-il, en complément, un code permettant de refuser la validation du formulaire si le texte rentré dans les comboboxs ne correspond pas aux valeurs préenregistrées dans les listes déroulantes?

Merci à vous!!

Au temps pour moi, je pensais qu'Array marchait!

Il faut mettre le paramètre 'Style' de la ComboBox sur 2-fmStyleDropDownList. Cela empêchera les utilisateurs d'écrire dans la ComboBox.

image
Rechercher des sujets similaires à "remplir liste deroulante userform array"