Récupérer le nom d'un bouton de commande

pascale :)

XLDnaute Nouveau
Bonjour,

Sur un feuille.xls, j'ai 4 boutons qui déclenchent une macro.

J'aimerais récupérer dans une variable, le nom du bouton cliqué.

j'ai tenté
nomBouton = ActiveControl.Name

mais j'ai une erreur 424

Merci pour votre aide

Pascale :)
 

pascale :)

XLDnaute Nouveau
Re : Récupérer le nom d'un bouton de commande

merci, c'est certainement la bonne réponse.
Je l'ai déjà trouvée dans ma doc perso mais je ne sais pas comment l'utiliser.

Si je fais :
monBouton = Application.Caller
j'ai une erreur 9

???

Pascale :)
 

Fo_rum

XLDnaute Accro
Re : Récupérer le nom d'un bouton de commande

Salut,

pas sûr d'avoir tout compris,
si tes boutons ont été renommés CB1, CB2 ... essaie :
Code:
Dim Nom As String

Private Sub CB1_Click()
  Nom = "CB1"
End Sub

Private Sub CB2_Click()
  Nom = "CB2"
End Sub

Private Sub CB3_Click()
  Nom = "CB3"
End Sub

Private Sub CB4_Click()
  Nom = "CB4"
End Sub
 
Dernière édition:

pascale :)

XLDnaute Nouveau
Re : Récupérer le nom d'un bouton de commande

Merci Fo_rum

Voici le scénario :

actuellement :

1 feuille sur laquelle il y a 4 boutons qui lancent 4 macros identiques à ceci près qu'elles agissent sur 4 feuilles différentes.
Btn1 agit sur feuil1, Bt1 et feuil1 ont le même nom
Btn2 agit sur feuil2, " " "
Btn3 agit sur feuil3, " " "
Btn4 agit sur feuil4, " " "

En fait, ces macros ne font que du calcul à l'envers (valeur cible)

La feuille qui contient les 4 boutons récupère les résultats des 4 autres feuilles.

Je me disais qu'il serait plus efficace de n'avoir qu'une seule macro qui testerait le nom du bouton cliqué et traiterait ainsi la bonne feuille en nourrissant une variable qui servirait à identifier la feuille cible.

Donc, je n'ai qu'un seul problème : comment récupérer le nom du bouton sur lequel j'ai cliqué.

Merci

Pascale : )
 

job75

XLDnaute Barbatruc
Re : Récupérer le nom d'un bouton de commande

Bonsoir Pascale, pierrejean, Fo rum,

Application.Caller ne fonctionne qu'avec des boutons (ou objets) créés par Formulaires.

Avec des boutons ActiveX (créés par la Boîte à outils Contrôles), il faut impérativement une macro par bouton, mais ces macros peuvent être très simples et appeler une seule grosse macro (MaMacro) en lui envoyant une valeur.

Cette valeur est récupérée dans MaMacro par une variable qui peut s'appeler bouton :

Code:
Private Sub CommandButton1_Click()
Call MaMacro([COLOR="Red"]1[/COLOR])
End Sub

Private Sub CommandButton2_Click()
Call MaMacro([COLOR="Red"]2[/COLOR])
End Sub

Private Sub CommandButton3_Click()
Call MaMacro([COLOR="Red"]3[/COLOR])
End Sub

Sub MaMacro([COLOR="Red"]bouton[/COLOR] As Byte)
'------------------------
End Sub

A+

Edit : je n'avais pas bien regardé la solution de Fo rum, en fait elle est très semblable, mais au lieu d'envoyer une valeur, il la mémorise en la déclarant en haut de la page. Par contre il oublie d'appeler MaMacro...
 
Dernière édition:

pascale :)

XLDnaute Nouveau
Re : Récupérer le nom d'un bouton de commande

Merci Job75

Mes boutons sont faits avec la barre d'outils formulaire depuis la feuille de calcul et stockés sur celle-ci.

Est-il possible d'en récupérer le nom au moment ou je clique dessus ?
Et si oui (je croise les doigts), comment ?

Merci pour votre aide à tous les trois.

Pascale : )
 

Pierrot93

XLDnaute Barbatruc
Re : Récupérer le nom d'un bouton de commande

Bonsoir à tous

avec les boutons de la barre d'outils formulaire, je pense que le code de PierreJean:), que je salue au passage, devrait fonctionner :

te renvoie le nom dans une boite de dialogue.
Code:
MsgBox Application.Caller

bonne soirée
@+
 

pascale :)

XLDnaute Nouveau
Re : Récupérer le nom d'un bouton de commande

merci à tous

msg me renvoie effectivement le nom du bouton

j'aurais du écouter pierrejean dès le début...
mais ça me semblait trop facile

et bien tant pis pour moi : )

et merci pour tout à Fo_rum, Job75 et Pierrot93
ça m'a fait avancer

Pascale : )
 

Discussions similaires

Réponses
18
Affichages
1 K
Réponses
2
Affichages
214

Statistiques des forums

Discussions
314 663
Messages
2 111 674
Membres
111 256
dernier inscrit
cvwvoizhjf