[Excel] userform

Résolu
Signaler
Messages postés
83
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2014
-
Messages postés
131
Date d'inscription
vendredi 18 août 2006
Statut
Membre
Dernière intervention
17 mars 2010
-
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

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
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
Messages postés
60
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
30 mars 2010

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
Messages postés
83
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2014

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 ??
Messages postés
131
Date d'inscription
vendredi 18 août 2006
Statut
Membre
Dernière intervention
17 mars 2010

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.
Messages postés
131
Date d'inscription
vendredi 18 août 2006
Statut
Membre
Dernière intervention
17 mars 2010

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.
Messages postés
83
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2014

çà marche çà pour utiliser un control de taper :
Me.Controls("Nom de contrôle")

??
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
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
Messages postés
83
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
4 septembre 2014

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
Messages postés
131
Date d'inscription
vendredi 18 août 2006
Statut
Membre
Dernière intervention
17 mars 2010

Penses à valider la réponse de MPi² histoire que ça puisse aider d'autres personnes !

Nanardino64
Développons-nous, développeurs.