Re : Un évènement pour plusieurs TextBox
RE : Jérôme,
Je ne comprends pas bien ta dernière question, mais pour revenir à ta demande initiale, c'est la meilleure solution pour traiter de nombreux contrôles.
Je ne connais pas ton niveau en VBA, mais si tu comprends les modules de classe, tu vas faire un grand pas en avant.
Je vais donc essayer de t'expliquer le plus clairement possible la conception de cette méthode particulière :
Pour commencer, bien sûr, tu crées normalement tes contrôles sur ton formulaire.
Ensuite, tu insères un module de classe et tu lui donnes un nom explicite. Dans mon exemple, je l'ai nommé clTextBox ce qui pour moi signifie : classeTextBox. Dans la rubrique Général du module de classe, tu crées un groupe (GrpTB) auquel tu affecteras les événements disponibles pour ce type dans la liste déroulante de droite après l'avoir sélectionné dans celle de gauche.
Puis, dans le module de code du formulaire, tu commences par déclarer un tableau dynamique qui contiendra la liste de tous les TextBox que tu voudras y affecter. Dans cet exemple c'est simple car c'est l'ensemble qu'on va y enregistrer. Il serait possible de n'en affecter qu'une partie mais ne compliquons pas les choses pour le moment. Donc tu écris dans la rubrique Général du module Omega10 la déclaration suivante : Dim TBox() As New clTextBox. Le tableau TBox sera donc utilisé par le module de classe pour gérer les contrôles qu'il contient.
Ensuite, tu enregistres les contrôles TextBox dans ce tableau, au moyen d'une boucle. La particularité de cette boucle est qu'elle balaie la totalité des contrôles du formulaire et si le type (TypeOf) est un TextBox elle l'ajoute en lui affectant l'indice i. C'est cet indice qui sera utilisé par VBA pour déterminer le contrôle actif dans le code du module de classe.
Enfin, tu reviens dans le module de classe, et après avoir sélectionné GrpTB dans la liste déroulante de gauche tu lui affectes l'événement MouseMove que tu trouveras dans celle de droite. Et là, tu lui fait faire ce que tu veux comme dans un module de code objet classique.
Si tu essaies, par la suite d'ajouter d'autres contrôles TextBox, tu n'auras rien d'autre à faire. Sauf si, bien sûr, tu désires dissocier ces nouveaux contrôles mais c'est une autre histoire et à chaque jour suffit sa peine. L'essentiel, pour le moment, est que tu assimiles bien ces notions de base.
Je t'avoue que moi-même il m'a fallu un peu de temps pour comprendre, la principale difficulté est de discerner les objets et les variables. Même s'ils ne sont pas toujours très clairs, tu trouveras quelques tutos sur ce sujet sur la toile.
Espérant avoir été clair et ne pas t'avoir rasé avec ces explications. Et t'avoir donné le goût de persévérer.
Cordialement.