|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 7 ![]() |
Bonsoir,
je crée plusieurs boutons dans un menu, qui envoie tous à la même fonction. Comment fait on pour déterminer, dans la fonction, le choix qui a été fait par l'utilisateur ? Pour être plus clair, un peu de code : Code :
|
||
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Romain M.Étudiant Inscription : avril 2009 Messages : 167 ![]() |
Bonjour,
Vous avez plusieurs possibilités : - Créer une variable GLOBALE pour chaque bouton. A l'ouverture du formulaire , elle est égale 0. A chaque clic du bouton ( évenement OnClic) , la variable prend la valeur 1. - Utiliser la propriété TAG - Réorganiser le code. Je ne vois pas pourquoi créer 3 boutons à chaque fois ... Pourquoi ne pas utiliser 3 boutons "fixes" et d'y associer des évenements par programmation évenementielle ( surtout si on créer une fonction avec un paramètre) Bien cdt RM |
|
|
00
|
|
|
#3 | ||||
|
Expert Confirmé
![]() |
bonjour
essaie ca un peu je créé ton menu et tes 3 boutons toto qui appelle la même macro et tu determine quelle bouton a été cliqué par le "application.actioncontrol.tag" allez assez de blabla voila le code Code :
il est vrai que ta facon d'ajouter le menu toto est seduisante mais pour gérer les propriétés je n'ai pas trouver de donnée de facon avec ta methode au plaisir rebonsoir quand je disais que ta méthode est séduisante au niveau du code je n'imaginait pas a quel point réduction de code au maximum alors voila avec ta methode:'on utilisera toujour le "application.actioncontrol" mais ".control" dans la macro que vont appeler les 3 boutons ça donne ceci: Code :
j'espère que ça te servira n'hésite pas le sujet m'intéresse je cherche encore a y intégré les autres propriétés que l'on peut avoir avec ma méthode au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
||||
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() ![]() |
Salut
J'ai utilisé la génération de boutons dans le menu contextuel dans le fichier planning qu'on utilise au boulot. Afin de pouvoir passer plus de paramètres, je place dans le tag mes paramètres les uns à la suite des autres en les séparant avec un caractère donné, par exemple une virgule. Ensuite dans le code de traitement du clic, j'utilise la fonction Split pour créer un tableau contenant mes différents paramétrés. ++ Qwaz
__________________
MagicQwaz := Harry Potter la baguette en moins ![]() Le monde dans lequel on vit HammerFest Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 7 ![]() |
Bonjour,
merci pour vos réponses. La solution CommandBars.ActionControl.Caption fonctionne parfaitement ! ![]() L'idée est effectivement de charger le nom des menus et sous-menus/boutons à partir d'une petite base de donnée. La macro à executer restant toujours la même, cette solution est parfaitement adaptée. Je suis satisfait que ma question ait été bonne, je crains toujours de demander des choses simples à trouver sur les forum. Mais bon, j'avais tellement chercher avant de la poser, que je me doutais bien que ce n'était pas si simple ! ++ |
|
|
00
|
|
|
#6 | |||||
|
Expert Confirmé
![]() |
bonjour FreeZf et qwazerty
ayant trouvé cette methode seduisante au niveau de reduction du code j'ai poussé la reduction du code a son maximum le résultat est tres surprenant voici le code Code :
Code :
pour qwazerty: Citation:
avec "application.commandbar........" c'est simple mais avec "ShortcutMenus(xlWorksheetCell)....... je n'est rien trouvé au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
|||||
|
|
00
|
|
|
#7 |
|
Expert Confirmé Sénior
![]() ![]() |
Salut
Je n'utilise pas shortcutMenus non plus, j'essaierai de mettre mon fichier en ligne dans une contribution quand j'aurais le temps (et le courage ++ Qwaz
__________________
MagicQwaz := Harry Potter la baguette en moins ![]() Le monde dans lequel on vit HammerFest Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer |
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé
![]() |
bonjour qwazerty
je te remercie pour le fichier cela dit j'avais bien compris comment tu transporte les parametres en argument par le tag du control en utilisant la fonction split par les virgules ou tout autre symbole ce que je cherche c'est comment metre un tag avec la formule shortcutmenus je ne connaissais pas j'ai commencé vba avec 2007 il semblerait que ca soit l'ancienne methode mais neanmoins interressante au niveau de la longueur du code d'ailleur j'ai trouvé ceci dans une page internet en faisant une recherche il semblerait que des arguments soit disponibles Code :
au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
||
|
|
00
|
|
|
#9 | |
|
Expert Confirmé Sénior
![]() ![]() |
Salut
Ok je comprends ce que tu recherches à faire, mais je n'ai pas de réponse. Pour ta question concernant Before:=1, c'est simplement par ce que tu renseignes tous les arguments. si tu décidais de ne pas faire apparaître le 2ème argument, laissé vide dans le code, tu devrais alors nommer les arguments suivant en précisant leur nom suivi de :=. Logic, sinon comment vba saurais de quel argument tu veux parler, celui que tu ne souhaites pas renseigner ou celui qui suit.... ![]() Si je trouve plus d'info sur shortcutsmenu, je rajouterais l'info ici. [Edit] Citation:
[/Edit] ++ Qwaz
__________________
MagicQwaz := Harry Potter la baguette en moins ![]() Le monde dans lequel on vit HammerFest Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer |
|
|
|
10
|
|
|
#10 |
|
Invité régulier
![]() Inscription : novembre 2011 Messages : 7 ![]() |
Bonjour à tous les deux,
c'est effectivement une ancienne méthode que j'avais trouvé séduisante et que j'utilise depuis un moment. Mais je n'avais jamais poussé autant. C'est génial ! Merci à tous les deux !! |
|
|
00
|
|
|
#11 |
|
Expert Confirmé
![]() |
bonjour qwazerty et FreeZf
pour qwazerty: merci pour la diction de la formule j'en conclu que pour le tag c'est rapé c'est bien dommage pour FreeZf:oui c'a n'est pas parce que c'est vieux (vielle méthode) que c'est a jeter a la poubelle pourtant moi j'ai appris avec la nouvelle méthode (application.commandbars("cell").add......)avec la quelle on peu t aller plus loin visiblement mais je reste séduit par l'ancienne méthode qwazerty si tu trouve ou si tu a un lien interessant je reste intéressé par cette méthode au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com