|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Office & Excel ![]() ![]() ![]() |
[EDIT] Proposition à supprimer car solution de Silkyroad beaucoup plus simple. Merci[EDIT]
Bonjour Je peux proposer ce qui suit, soit en code source, soit (et cela me semble préférable), en article. Si cela est accepté, j'étofferai et commenterai davantage. Contexte Créer des boutons dynamiquement et leur affecter la même macro, puis pouvoir déterminer sur quel bouton l'utilisateur a cliqué dans le traitement de la macro spécifiée sur le OnAction du bouton Utilité Dans l'exemple sur le forum, l'intervenant souhaitait créer des boutons sur une barre d'outils pour permettre une navigation dans les onglets. L'idée était de créer les boutons, de leur affecter une même macro, et d'identifier dans la macro le bouton cliqué pour activer la feuille correspondante. La solution que je propose fait intervenir deux classes, la classe cBoutons et la classe cBouton. Construction de la classe cBoutons Créer un nouveau module de classe et le nommer "cBoutons", puis y coller le code suivant: Code :
Créer un nouveau module de classe et y coller le code suivant: Code :
Lorsque l'on ajoute un élément à l'instance de la classe cBoutons, un nouvel élément de type cBouton est créé et initialisé puis ajouté à la collection privée déclarée dans cBoutons. L'initialisation du bouton Code :
Dans un module standard, il faut déclarer en haut de module une nouvelle instance de notre classe cBoutons. Lors de l'ajout d'un bouton, on l'ajoute à l'instance cBouton créée. Il suffira alors de récupérer la "propriété" Parametre de l'instance de cBoutons dans la procédure spécifiée pour le OnAction du bouton Cela donnera quelque chose du genre, dans un module standard Code :
La collection de boutons de la classe cBoutons permet d'instancier autant de cBouton qu'il y a de feuilles dans le classeur. Ainsi, chaque bouton existe dans la collection et on peut donc gérer l'évènement Click du bouton, grâce à la déclaration "WithEvents" du bouton dans cBouton. J'espère que cela pourra être utile. Je vous remercie pour tout retour constructif sur ce message et cette proposition de collaboration
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
||||||||
|
00
|
|
|
#2 |
![]() ![]() |
Bonsoir, Pierre...
je suis pas sur que cette contribution soit à supprimer on manque d'exemples sur l'utilisations des classes....
__________________
page à bbil : dernières entrées : Débuter en VB6 Mes contributions en téléchargement Les pages VB : FAQs, Tutoriels VB, Outils , Sources, WIKI Impératif "A LIRE AVANT DE POSTER"
|
|
00
|
|
|
#3 |
|
Office & Excel ![]() ![]() ![]() |
Salut
Ok. Je peux l'étoffer un peu ou la détailler.
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
|
00
|
|
|
#4 |
![]() ![]() |
![]()
__________________
page à bbil : dernières entrées : Débuter en VB6 Mes contributions en téléchargement Les pages VB : FAQs, Tutoriels VB, Outils , Sources, WIKI Impératif "A LIRE AVANT DE POSTER"
|
|
00
|
|
|
#5 | |
![]() ![]() Alain GerardConsultant informatique Inscription : mai 2005 Messages : 3 675 ![]() |
Citation:
Edit -> J'ai trouvé, c'est là. Vu le commentaire de SilkyRoad, je pense qu'il vaut mieux garder cette contribution.
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres! Pensez aussi à voter pour les réponses qui vous ont aidés. ------------ Je dois beaucoup de mes connaissances à mes erreurs! |
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : juillet 2009 Messages : 5 ![]() |
Merci pour ce post, ça fait plus d'un mois que je cherche une solution a ce pb avec outlook, j'avais entrepris de faire un COM ADDIN, mais la ça marche super.
Merci encore.
|
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 1 050 ![]() |
Bonjour,
je ne comprends pas là. Un simple CommandBars.ActionControl ne suffit-il pas ? |
|
|
00
|
|
|
#8 | |
|
Nouveau Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 75 ![]() |
Citation:
|
|
|
|
00
|
|
|
#9 | |
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
bjr,
Citation:
http://excel.developpez.com/faq/inde...arButtonClique
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com