[vba] Affecter à un événement une fonction

cs_sebro Messages postés 3 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 10 décembre 2008 - 30 nov. 2008 à 21:07
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 1 déc. 2008 à 08:34
Bonjour,
Tout d'abord un petite explication de ce que je veux faire.
Je souhaite créer des fenêtre dynamique en vba c'est à dire que le contenu change au cours de l'exécution.
Donc j'ajoute des Control à une UserForm par le biais de cette commande :

form.Controls.Add(type_objet)

Ce que je cherche à savoir est comment affecter à l'événement on_click de mon item une fonction que j'ai définis. En résumé je veux savoir comment associé une fonction à un événement spécifique sur un control.

Merci de vos réponseshttp://www.vbfrance.com

3 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
30 nov. 2008 à 21:22
salut,

par cette méthode tu dois d'abord déclarer tes objets "potentiels" WITHEVENTS

tu aras alors
dim withevents x as type_precis

ta ligne sera alors
set x= form.controls.add(type, "x")

comme tu le vois, le problème est alors de prévoir assez de contrôles des types désirés.
le moyen propre serait une colleciton, mais cette dernière ne renvoie pas d'évènement

observer le handle n'est pas non plus possible (pas de handle en vba)

dernière possibilité, faire autant de classe que de type potentiels, chacune va alors gérer un nombre max de contrôle du type en question.
çà ne fait qu'alléger niveau lisibilité mais c'est strictement le même fonctionnement que celui proposé en début...

VBA n'est en effet pas fait pour supporter facilement ce que tu voudrais ;)

bon courage

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
30 nov. 2008 à 23:51
Salut,
Sinon une autre possibilité mais plus "pénible" est d'écrire un code qui écrive du code à la volée... je crois me souvenir que c'est possible.

@+: Ju£i€n
Pensez: Réponse acceptée
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
1 déc. 2008 à 08:34
Salut,
Regarde cette discution,peu être pourra t'elle t'aider

@+: Ju£i€n
Pensez: Réponse acceptée
0
Rejoignez-nous