Dans une macro, connaitre le nom du bouton d'appel

bonjour à tous,

je n'ai pas trouvé de solution à mon problème aussi je m'en remets à vous :

j'ai plusieurs boutons (formes) B1, B2 B3 etc qui appellent chacun une macro différente M1 pour B1, M2 pour B2,.....

Je voudrais simplifier mes macros M1 à Mx, en utilisant une seule macro "M" pour tous les boutons!

à la condition que je puisse identifier dans cette macro M, l'origine du bouton qui appelle la macro pour pouvoir la parametrer en conséquence

En résumé : au lieu d'avoir une douzaine de boutons associés à une douzaine de macros, je veux une douzaine de boutons associés à 1 seule macro!

Bonjour !

Quand tu vas vers tes boutons tu devrais avoir un truc du genre :

Sub CommandButton1_Click()

Call Macro

End Sub

Ce que tu fais c'est que tu modifies ta macro pour qu'elle prenne un paramètre (Macro (i as integer), comme ça dans chaque bouton tu peux faire

Call Macro(1), Call Macro(2)...

Et ensuite tu utilises un case ( http://www.techonthenet.com/excel/formulas/case.php )

Quand i = 1 alors...

Bonne journée

Bonjour sam42 et Elhevan,

Application.Caller

répond également à ta demande.

Imaginons ton "Bouton 1" réalise un appelle à la procédure "maProcedure".

Sub maProcedure()
Msgbox Application.Caller 'renverra le NOM de ce qui a émis l'appel à la procédure, dans notre cas, "Bouton 1"
End Sub

Ainsi ce code combiné au code de Elhevan (un Case) te permettra de différencier les différentes possibilités SI les noms de tes boutons sont propres à certaines actions

Ce qui pourrait donner au final qqlchose comme cela:

Sub maProcedure()
Select Case Application.Caller
Case "Bouton 1"
    'action 1
Case Else
    'action 2
End Select
End Sub
capture

merci à tous les 2 mais je n'ai sans doute pas tout compris !

je vous joins un exemple de ce que j'ai fait

C'est le case qui me gene ! on ne le déclare nulle part ?

132test-bouton.xlsm (13.78 Ko)

Voilà

169test-bouton.xlsm (13.29 Ko)

Pour info tu as les noms de bouton les plus bizarres au monde Mais si tu t'y repère ^^

Attention de ne pas confondre le TEXTE du bouton et son NOM. Dans mon image, on a:

Texte = "TOTO"

Nom = "Bouton 1"

et Application.Caller renvoie le NOM donc "Bouton 1"

file.php id 127694

attention !

J'ai mis la lettre "A" comme j'aurais pu mettre "bouton 1" (ce que j'ai d'ailleurs essayé!!)

mais les boutons que j'ai sont des boutons faits avec "formes" (rectangles coins arrondis...) ce ne sont pas des commandbuttons!

Je dessine mon bouton et ensuite j'affecte à ce bouton une macro

je n'ai pas de :

"Private Sub CommandButton1_Click()

End Sub"

De ce fait je n'ai plus cette notion de nom ou de texte du bouton!

Ah ! je n'avais pas vu que tu m'avais renvoyé mon fichier modifié!

je comprends maintenant ton commentaire sur les noms bizarres !!! c'est le système qui a donné ces noms (rectangle coins arrondis 63 etc..)

ce n'est pas moi! (il aurait fallu avoir l'esprit tordu !!!

Alors comment faire pour "imposer" des noms plus "clean" à ces boutons plutôt que ces noms à coucher dehors !

c'est bon!

j'ai ma solution : changer le libellé de chaque bouton dans la ligne formules (qui était désactivée!

merci à vous

Rechercher des sujets similaires à "macro connaitre nom bouton appel"