Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Creation "onEvent" par vba

L

Ludo

Guest
Bonjour a tous,

je bloque bien comme il faut sur le probleme suivant:
J'ai 10 celulles renseignées sur une feuill excel.
Quand je lance une macro, je cree dans un formulaire un Label pour chaque cellule.
Donc de label i a i+10, les label sont nommes 'label' & i

Jusque la ca va.

je voudrais, pour chaque label crée, pouvoir assigner un truc du genre:

labeli_click()
msgbox('label Numero' & i)
end sub

Et ce, de maniere automatique lors de la creation du form, comme ca quand le forme apparait et que je clique sur un label, le petit msgbox apparait

J'y arrive pas. Mais est ce possible??


J'espere que le probleme est clair (..) et vous remercie 10000 fois pour votre precieuse aide..


Ludo
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Ludo, le Forum

Ce genre de code WithEvents est ce que je suis en train d'appronfondir sur des Modules de Class, mais de là à le générer automatiquement, je ne me suis en fait jamais encore retrouvé à un tel besoin...

La difficulté majeure dans cette éventualité sera d'écrire dans deux endroit bien distincts du VBProject, le Module du UserForm lui-même mais aussi et surtout dans un Module de Class... Tout en synchronisant les Informations...

Dans un premier temps, quoique que l'idée soit interressante, je vais t'orienter vers une solution basic plus facile et plus rapide (pour moi aussi !! lol)

Donc une fois ton UserForm généré, si tu ne l'as pas nommé autrement il devrait se nommer UserForm1. Comme tu dis savoir générer tes 10 Labels nommés 'Label1, Label2, Label3, ... etc Label10' donc il te suffira d'enchainer cette procédure :



Bonne Fin de Journée
[ol]@+Thierry[/ol]
 
L

Ludo

Guest
Thierry,

merci beaucoup pour la röponse ca a l'air de fonctionner

Mais ca fonctionne seulement si les labels sont crées manuellement dans le formulaire.

En fait, n'etant point du tout un expert en vb, je me demande un truc:
les labels crées dynamiquement, peut on les enregistrer 'reelement' dans le formulaire, c'est a dire que si je le ferme et que je le re ouvre, les labels crees soient encore la?

le code de l'event est bien ecrit mais rien ne se passe quand je clique sur mes labels, comme si les labels n'existaient pas vraiment

Pauvres petits labels....


Aurait tu (vous) une astuce pour ce probleme??


Merci d'avance


Ludo
 

_Thierry

XLDnaute Barbatruc
Repose en paix
=> DEMO AutoGeneration UserForm par Programmation

Bonjour Ludo, le Forum

Arf oui les Pauvres petits Labels....

Pour ton sas, sans le code je ne sais pas trop dans quoi tu 'farfouilles' mais si, admettons, j'avais à générer un UserForm avec 40 TextBoxs accompagnées de 40 Labels le tout alligné en collonne de 10 en 10

Ceci avec ces 40 Labels qui devraient donc réagir au Click avec un MsgBox... Tout en conservant le UserForm ainsi généré avec tous ses Controls ActiveX, voici comme je procèderai :



Bonne Journée
[ol]@+Thierry[/ol]
 
L

Ludo

Guest
Op op op

Je viens de touver une solution qui est pas trop mal est qui fonctionne bien donc je me permet de l'ecrire, au cas ou qulequ'un s'interresse au sujet ..

Donc, j'ai utilisé un module de class.
Sur Userform_initialize, je lance ma procedure qui rajoute mes 10 petits labels, de label i a i+10.

Puis, a la suite de ce 'lancement',2 choses:
- Dans un modul de class, pour les Labels lui appartenant, il faut afficher msgbox 'label'i sur un click.
- Dans mon userform_initialize, je fait l'inventaire des labels presants, je 'lie' les labels crées au modul de class.

De ce fait, le 'groupe' de label apaprtenant au modul de class se voit 'infliger' une msgbox chacun!!


Merci en tout cas pour l'aide, bien cool le forum


A bientot pour de nouvelles aventures !


Ludo
 
L

Ludo

Guest
Thierry,

Desole, nos messages se sont croisés!!

Je vais lire attentivement ton code puis essayer de le comprendre

merci en tout cas pour tes reponses bein sympa
J’ai mis mon (debut) de fichier en piece jointe.

En fait j’essaye de créer dynamiquement un « menu déroulant ».
L’arborescence est dans des cellules avec la forme « tree ».

C’est juste pour le challenge et pour apprendre un peu le VB, ça n’a pas grande utilité pour l’instant.
Mon but final etant de gerer Visible pour les labels sur mousemouve, pour vraiment donner l’impressiont du déroulant….


Merci encore pour les reponses, et si ca t’interesse, je te tiendrais au courrant de mon avancée !!!

Merci

Ludo
[file name=menu_20050830110610.zip size=21592]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/menu_20050830110610.zip[/file]
 

Pièces jointes

  • menu_20050830110610.zip
    21.1 KB · Affichages: 42

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…