[Excel] userform

Résolu
Nyck0las Messages postés 83 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 4 septembre 2014 - 21 févr. 2008 à 11:31
nanardino64 Messages postés 131 Date d'inscription vendredi 18 août 2006 Statut Membre Dernière intervention 17 mars 2010 - 22 févr. 2008 à 10:40
Bonjour,

je suis en train de créer une userform et j'ai un certain nombre de combobox auquel je souhaiterais appliquer la même procédure ComboBox_Change.
Suis-je obliger de retaper 30 fois quasiment la même procédure en changeant 2-3 indices ou puis-je procéder de façon plus générale ??

9 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
21 févr. 2008 à 23:02
En fait, sous Excel, on ne peut pas créer de groupes de contrôles comme en VB6.
Par contre on peut utiliser la collection de ces contrôles.

S'ils sont sur un UserForm, on peut écrire
Me.Controls("Label" & numero).Caption = "blabla"
Me.Controls("Combobox" & numero).AddItem "blabla"

Par contre, pour l'appel d'une procédure, il faut utiliser les 30 événements de Combobox1, Combobox2,...Combobox30
Dans ces événements, il pourrait y avoir qu'une seule instruction qui appelle une procédure avec des paramètres selon les besoins.

Autre technique, je pense, c'est de créer une classe de Combobox, disons, et y insérer différentes propriétés et méthodes, dont un Index...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
3
cs_Frederic45 Messages postés 60 Date d'inscription vendredi 26 octobre 2007 Statut Membre Dernière intervention 30 mars 2010
21 févr. 2008 à 14:36
Bonjour à tous

Une idée :
Tu crées une macro_change avec ce qu'elle doit faire et avec un select case 1,2,.....30
Dans tes combobox(x)_change tu écris : var=x  et macro_change

Frédéric
0
Nyck0las Messages postés 83 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 4 septembre 2014
21 févr. 2008 à 14:43
oui je vois ce que tu veux dire.

je fais quand même 30 fois appel à combbobox_change mais je ne refais pas 30 fois la même chose à l'intérieur, là je fais appel à une autre procédure.

c'est une solution intermédiaire, ... je pense que je vais faire çà ...

qui dit mieux ??
0
nanardino64 Messages postés 131 Date d'inscription vendredi 18 août 2006 Statut Membre Dernière intervention 17 mars 2010
21 févr. 2008 à 18:27
Salut,
Halala je crois que malheureusement va falloir tout te taper ou en tout cas si tu trouve une meilleure solution dis moi que je m'en serve sur certains de mes projets !

Nanardino64
Développons-nous, développeurs.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nanardino64 Messages postés 131 Date d'inscription vendredi 18 août 2006 Statut Membre Dernière intervention 17 mars 2010
21 févr. 2008 à 18:31
Je retire ce que je viens de dire
apparement il y a une solution
http://www.vbfrance.com/codes/EVENEMENT-MOUSEMOVE-SUR-SELECTION-CONTROLES-MEME-TYPE_37169.aspx
c'est de mortalino et ça a l'air pas mal du tout je vais m'y pencher dessus moi aussi

Nanardino64
Développons-nous, développeurs.
0
Nyck0las Messages postés 83 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 4 septembre 2014
22 févr. 2008 à 09:47
çà marche çà pour utiliser un control de taper :
Me.Controls("Nom de contrôle")

??
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
22 févr. 2008 à 10:18
C'est une question ou une affirmation ?
Si c'est une question, peux-tu me dire ce que veut dire "control de taper" ?

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
Nyck0las Messages postés 83 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 4 septembre 2014
22 févr. 2008 à 10:35
ouais je ne me souviens plus de ce que j'avais marqué ou en tout cas de ce que je voulais dire mais c'est sûr que c'était pas çà !!!!!
je comprends rien à ce que çà dit !!

je viens de tester ce contrôle : me.controls("nom") et çà marche !!!
c'est génial, çà va me permettre d'alléger mon code et de le simplifier !! wow
0
nanardino64 Messages postés 131 Date d'inscription vendredi 18 août 2006 Statut Membre Dernière intervention 17 mars 2010
22 févr. 2008 à 10:40
Penses à valider la réponse de MPi² histoire que ça puisse aider d'autres personnes !

Nanardino64
Développons-nous, développeurs.
0
Rejoignez-nous