![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
Bonjour à vous,
j'aimerais savoir s'il est possible de passer un paramètre à la fonction click d'un bouton situé dans une sheet. Voilà le code que je passe : Application.Run "" & Sheets("Activite").CodeName & ".bt_activite_Click" , Code.Value et le code de l'évènement click Private Sub bt_activite_Click(code as string) mais apparemment ca ne lui plait pas! Est-ce que j'ai fait une erreur ou bien, est-ce que tout simplement ce n'est pas possible? Merci Clark ![]() |
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
bonsoir Clark
si un CommandButton , est inséré dans une feuille appelée "Activite" et qu'une procedure est associée à l'evenement Clic du bouton . par exemple : Private Sub CommandButton1_Click() MsgBox "Le forum XLD" End Sub la procedure ci-dessous , insérée dans un module , permet d'activer la macro du CommandButton Sub lanceEvenementClickBouton() Application.Run Sheets("Activite").CodeName & ".CommandButton1_Click" End Sub bonne soirée MichelXld |
|
|
#3 (permalink) |
|
Guest
Messages: n/a
|
Merci Michel, mais tu ne réponds pas du tout à ma question.
Si tu lis mon message, tu verras que j'ai déjà cette syntaxe! Ce qui me manque c'est de pouvoir passer un paramètre pas d'appeler la procédure click! Clark |
|
|
#5 (permalink) |
|
Guest
Messages: n/a
|
Un paramètre est une valeur que tu utilises dans ta procédure située dans la macro et que tu veux également utiliser dans le code click du bouton.
Exemple : Procédure Afficher_Nom () Dim p_nom as string p_nom="Jean" Application.Run Sheets("Activite").CodeName & ".CommandButton1_Click" , p_nom Fin Procédure //Là on passe un paramètre p_nom à la procédure de click //C'est la syntaxe pour passer un paramètre à une procédure autre qu'un évènement click, mais je ne sais pas comment faire pour un évènement click, ca ne semble pas marcher pareil! procédure CommandButton1_Click (p_nom as string) msgbox(p_nom) fin procédure Clark |
|
|
#6 (permalink) |
|
Guest
Messages: n/a
|
bonjour Clarck
si tu souhaites que ta variable ( ton parametre ) soit utilisable dans l'ensemble du classeur , il faut remplacer "Dim p_nom As String" par "Public p_nom As String" et la placer tout en haut au dessus de la premiere procedure . ce n'est pas la peine d'ajouter "p_nom" en fin de la ligne Application.run 'dans un module Public p_nom As String Procédure Afficher_Nom() p_nom = "Jean" Application.Run Sheets("Activite").CodeName & ".CommandButton1_Click" fin Procédure 'dans la feuille "Activite" Procédure CommandButton1_Click MsgBox p_nom fin Procédure bonne soirée MichelXld |
|
|
#8 (permalink) |
|
Guest
Messages: n/a
|
bonjour Clarck
Cela fonctionne aussi .Dans ce cas , la variable "Public p_nom As String" doit rester dans un module 'la macro du CommandButton dans la feuille Private Sub CommandButton1_Click() MsgBox p_nom End Sub 'la macro du CommandButton dans le UserForm , qui va appeler la premiere macro Private Sub CommandButton1_Click() p_nom = "Jean" Application.Run Sheets("Activite").CodeName & ".CommandButton1_Click" End Sub bonne soirée MichelXld |
|
|
#9 (permalink) |
|
Guest
Messages: n/a
|
Bonjour Michel,
merci pour ta réponse, je n'ai pas répondu plus tôt car j'étais en congé! Une dernière question, où dois-je mettre la déclaration de p_nom si je n'utilise pas de module. Tous mes codes sont dans les boutons, les champs de saisie, les évènements,... mais aucun module n'est visible dans l'explorateur du projet. Clark ![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|