Récupérer le nom du bouton de commande sur lequel on clique

Bonjour à tous,

Je vous expose mon problème :

J'ai, sur une feuille (et non pas un UserForm), crée des boutons de commande (contrôles ActiveX, créés à partir de la boîte à outil contrôles).

Je souhaiterais récupérer le nom du bouton quand je clique dessus. Il faut donc partir du principe qu'en écrivant mon bout de code, je n'inscrit pas le nom du bouton de commande.

Je connais la méthode pour récupérer le nom d'un bouton formulaire sur une feuille :

ActiveSheet.Shapes(Application.Caller).Name

Je connais la méthode pour récupérer le nom d'un bouton de commande sur un UserForm :

Me.ActiveControl.Name

Mais je ne connais pas la méthode pour récupérer le nom d'un bouton de commande sur une feuille !

Je joins un fichier afin d'expliciter un peu plus ce que je recherche.

D'avance merci !

Bonjour Cédric

Et bien tout simplement, en tout cas je pense

Private Sub BActiveX1_Click()
  MsgBox Me.BActiveX1.Caption
End Sub

Tu peux mettre ça dans une variable public déclarer dans un module

A+

Bonjour Bruno,

Merci de t'intéresser à mon problème !

Le problème de ta solution, c'est que le nom du bouton apparaît dans le code, or c'est quelque chose que je voudrais éviter :

Je désire en effet que plusieurs boutons, dans différentes feuilles exécutent une procédure dont certains paramètres sont fonction du nom du bouton.

De plus, les boutons de commande sont placés directement sur une feuille Excel, et non pas dans un UserForm, il me semble que dans ce cas, on ne peut pas utiliser "Me" ?

Re,

Le problème de ta solution, c'est que le nom du bouton apparaît dans le code, or c'est quelque chose que je voudrais éviter :

Je désire en effet que plusieurs boutons, dans différentes feuilles exécutent une procédure dont certains paramètres sont fonction du nom du bouton.

Si tu mets des boutons Controle ActiveX, forcément le nom du bouton apparaîtra dans la feuille ou il est créé

Il suffit ensuite d'appeler une procédure avec le contenu du bouton en argument

"Me" qualifie l'objet conteneur, pour un contrôle ActiveX, l'objet conteneur est la feuille donc peut très bien être utilisé

La preuve dans le fichier

Ou alors je n'ai rien compris à ta demande

Bonjour Bruno, le forum

Désolé de ma non réponse, je n'ai pas eu le temps d'essayer la solution proposée, et de donner mon retour.

Grâce à ton exemple, j'ai pu adapter sur mon classeur, et tout marche correctement : j'appelle une procédure, dont l'argument est le nom du contrôle ActiveX et sa position, dans un module. Résultat : un code beaucoup plus clean, et facile à modifier !

Encore merci, et désolé de ne pas pouvoir présenter le résultat, mais je n'ai hélas pas le droit de transmettre le fichier...

Bonne continuation à tous !

Rechercher des sujets similaires à "recuperer nom bouton commande lequel clique"