VBA Appel procédure dont le nom est variable

Fermé
GrandCactus - 20 mars 2011 à 11:57
 GrandCactus - 20 mars 2011 à 17:34
Bonjour à tous,

Je bloque sur un problème, peut être que certains pourront m'aider.
J'ai créé un userform dont un contrôle créé des boutons de manière dynamique. J'arrive à affecter une procédure à ces boutons tant que leur nom est "figé".
Cependant leur nom contient une variable i et je ne sais pas comment appeler la procédure appliquée à ces boutons (lorsque je clique sur eux).

Voici le code en bref :
Private Sub Monpremiercontrole ()
Set Monbouton = Me.Controls.Add("Forms.CommandButton.1", "Monbouton" & i, True)
End Sub

Private Sub Monbouton & i _Click()
la procédure déclenchée par le bouton Monbouton & i
End Sub

En fait je ne sais pas comment intégrer le i dans le nom de ma dernière private sub

Je ne sais pas si je suis bien clair... Merci de votre aide car là je suis bloqué...

4 réponses

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191
Modifié par lermite222 le 20/03/2011 à 16:38
Voir le tuto ici
A+
Toute la connaissance du monde ne peu tenir dans une seul tête (moi)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
2
GrandCactus
20 mars 2011 à 17:34
Merci beaucoup Lermite222, je regarde tout ca en détail
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191
20 mars 2011 à 12:36
Bonjour,
Y a t-il une raison particulière pour avoir les boutons en dynamique ?, ce serait plus simple de les coller dans le design du départ ?
Ensuite Employer une collection de classe pour avoir les Click (et autre)

A+
0
GrandCactus
20 mars 2011 à 13:15
Merci de votre réponse, en effet il est nécessaire que les boutons soient en dynamique, notamment car à terme il y en aura une grande quantité qui nuira à la lisibilité du userform.

Avez vous une idée du code nécessaire pour appeler chaque bouton créé dynamiquement (contenant donc une variable i) à partir d'une private sub _click () ?

Je ne trouve rien pouvant m'aider sur le sujet...
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191
20 mars 2011 à 16:08
L'approche que tu fais ne pourra pas fonctionner, Excel ne reconnaitra pas les événement de Bouton1 (par exemple), il ne reconnaîtra que les objets créer soit la variable objet Monbouton
Pour réaliser ce système tu dois employer des collections de classe et collection d'objets, et ce n'est pas bien facile à comprendre.
Je viens de terminer un exemple, je le poste d'ici une heure ou deux.
0