Détecter et utiliser le NOM d'un OBJET dans une MACRO
Bruno_65
Messages postés50Date d'inscriptionjeudi 10 avril 2014StatutMembreDernière intervention27 juillet 2021
-
24 févr. 2021 à 10:24
cs_Le Pivert
Messages postés7893Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention19 mai 2023
-
24 févr. 2021 à 17:30
Bonjour,
Je suis débutant en VBA sur Excel...
Comment en cliquant sur un Objet pour déclencher une Macro
détecter automatiquement le NOM de cet Objet dans la macro
et l'utiliser comme une variable ?
-----------------------------------------------------------
Voici ce que je souhaite faire :
1/
- Je crée plusieurs Objets, par ex. des Carrés
et je leur donne un Nom : CAR_01, CAR_02, etc...
- Je veux créer une même Macro que j'attribue à tous les Carrés.
(en cliquant sur n'importe quel CAR_XX, cela déclenche la même Macro).
2/ Pour la MACRO : je voudrai que, en cliquant sur le CAR_XX,
automatiquement le Nom du CAR_XX soit détecté et être utilisé dans la Macro.
en tant que variable.
X = Nom du Carré
est ce possible ?
Voici un exemple :
Je clique sur CAR_07
1/ Cela déclenche la Macro.
2/ Je voudrai que la Macro détecte le nom de ce Carré.
X = "CAR_07" ?
cs_Le Pivert
Messages postés7893Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention19 mai 2023136 Modifié le 24 févr. 2021 à 10:55
Bonjour,
insérer un module et mettre ce code:
Option Explicit
Sub test()
MsgBox "Je me nomme : " & Application.Caller
mamacro
End Sub
Sub mamacro()
'mettre le code
End Sub
ensuite aller sur la feuille où se trouve les shapes( Carré) faire un clic droit sur la shape:
Affecter une macro et sélectionner test
A chaque clic sur la shape la macro se déclenchera
Bruno_65
Messages postés50Date d'inscriptionjeudi 10 avril 2014StatutMembreDernière intervention27 juillet 2021 24 févr. 2021 à 12:47
Bonjour,
er merci pour votre réponse rapide.
En fait, ce n'est pas tout à fait cela, j'ai dû mal expliquer ma demande...
J'ai compris que " Application Caller" permet de détecter le nom du CAR
sur lequel je clique (et déclenche la macro).
Ce que je souhaite dans la macro que je lance, c'est de créer une variable XXX ayant le nom du Carré
Je vais certainement mal écrire cela... :
'variable XXX
XXX = Application Caller
Je voudrai ensuite, dans la macro, faire un =INDIRECT(RECHERCHEV(XXX;Image!$A$1:$B$9999;2;0))
cs_Le Pivert
Messages postés7893Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention19 mai 2023136 24 févr. 2021 à 13:01
C'est simple, il suffit de déclarer ta variable comme ceci:
Option Explicit
Dim mavar As String
Sub test()
mavar = Application.Caller
mamacro
End Sub
Sub mamacro()
=INDIRECT(RECHERCHEV(mavar;Image!$A$1:$B$9999;2;0))
End Sub