peut on recuperer le nom de la macro en cours ?

jarc76

XLDnaute Nouveau
Bonjour, je reviens a la charge , car j'ai pas eu de reponse adequate ...


est il possible de recuperer le nom de la macro en cours pour le mettre dans une variable ???

par exemple :

Sub qui_suis_je()
nom= sub.NAME
...
end sub

je voudrais recuperer "qui_suis_je" dans la variable 'nom' mais l'instruction sub.NAME n'existe pas ....

dans le meme ordre d'idée, peut on recuperer le nom de la checkbox que l'on vient de cliquer ??

Private sub checkbox1_Click()
nom=activecheckbox
...
end sub


activecheckbox, ca marche pas , y a t-il une possiblité de recuperer "checkbox1" ou checkbox1_click" dans une variable ???

Merci par avance ....
 

jarc76

XLDnaute Nouveau
Re : peut on recuperer le nom de la macro en cours ?

ben oui ca merci , je me doute bien que c'est la meme question, vu que je suis la meme personne ....

Pas de reponse donc je reposte ....

et moi aussi je peux mettre des smileys 'pas content' !!!:mad: :mad:

et grace a toi , il y a une reponse dans le post donc du coup , personne vient voir mon sujet et personne ne me reponds , donc je t'annonce que le message sera remis une troisieme fois .....à la lettre prêt :mad: :mad:
Cordialement,
 

MJ13

XLDnaute Barbatruc
Re : peut on recuperer le nom de la macro en cours ?

Bonjour,

Voici un exemple pour mettre dans la variable qui_suis_je dans les nom définis (que l'on peut voir avec \insertion \nom \définir).

Sub qui_suis_je()
ActiveWorkbook.Names.Add Name:="qui_suis_je", RefersToR1C1:="qui_suis_je"
End Sub
 

Catrice

XLDnaute Barbatruc
Re : peut on recuperer le nom de la macro en cours ?

Bonjour jarc76,

Il ne faut pas rouvrir de nouveau Post !
Quand un sujet est renseigné, il repasse en premiere position donc il est lu ...
On repasse souvent voir les réponses. C'est interessant/enrichissant et ça peut donner des idées pour enrichir la solution proposée.
Il faut garder le meme Post !!

Pour répondre à ta question, au début de la Sub si tu mets une variable du genre :

Sub Test()
CetteProc = "Test"
....
....
End Sub

Ca peut fonctionner ?

Que veux tu faire exactement ?
En fait, on sait forcément dans quelle sub on est quand on l'éxecute, donc on met le code ad-hoc ?!...
 

jarc76

XLDnaute Nouveau
Re : peut on recuperer le nom de la macro en cours ?

salut MJ13,

ta reponse ne correspond pas car en fait je veux recuperer le nom de la macro en cours sans savoir son nom au depart !!!

car en fait des macro , j'en ai plus de 100 ,

je veux que toutes ces marco aient le meme programme mais ce programme serait indexable par le nom de la macro

Ex

Sub Macro_1()
num_macro= right(activemacro.name,1)
range("A" & num_macro)= "ok"
end sub

Sub Macro_2()
num_macro= right(activemacro.name,1)
range("A" & num_macro)= "ok"
end sub

etc...

la fonction 'activemacro.name' n'existe pas , mais il me faudrait quelque chose du genre ....

==> le programme des macros est le meme , mais l'action sera differente .... en fonction du nom de la macro .....

tu vois mon probleme ???
 

MJ13

XLDnaute Barbatruc
Re : peut on recuperer le nom de la macro en cours ?

Non je ne vois pas, mais, si tu mets un exemple avec un fichier allégé, cela sera plus simple pout tout le monde (et on ne le dira jamais assez!!!)
 

porcinet82

XLDnaute Barbatruc
Re : peut on recuperer le nom de la macro en cours ?

Bonjour tout le monde,

Je passe mettre mon petit gran de sel pour dire tout d'abord que je suis d'accord avec Spitnolan08 concernant la multiplication des posts. Je te signal au passage (jarc76) que si tout le monde balancait 3 ou 4 posts pour la meme question ca deviendrait vite le bordel et le pauvre Pascal ne serai plus ou donner de la tete.

Pour ce qui est de ta question, si tu a 100 macro avec le meme code, c'est que tu t'es mal debrouillé. Je ne vois pas du tout l'interet d'avoir 100 code quasiment identique. Ne pourrais-tu pas passer par un Select Case dans une seule macro???

@+
 

jarc76

XLDnaute Nouveau
Re : peut on recuperer le nom de la macro en cours ?

ok Catrice le message est bien passé .... je vais en tenir compte dorénavant !!!


concernant mon probleme, je pense avoir été plus clair dans mon message précédent ( que tu n'as pas pu voir car nos messages se sont croisés....)

Je veux bien mettre unexemple comme le demande MJ13, mais y aura rien de plus que ce que j'ai ecrit .... vu que je connais pas la fonction en question....


pour résumer,

j'ai 100 macros qui ont un nom indexé : marco_1, macro_2, macro_3,..., macro_100

toutes ces marcos ont le meme programme, strictement le meme ....

mais l'action de ce programme sera differente en fonction de l'indexage apporté par la variable qui se trouve dans le nom de la macro : macro_1
d'où mon interet pour récuperer le nom de la macro

et je ne veux en aucun cas personnaliser chacune des macros en remettant son nom ou son index a l'interieur meme du programme ...

Ma seule solution ( a mes yeux ) est donc de recuperer le nom de la macro ....

et c'est pas si simple ( d'ailleurs , est ce reellement possible : ????)
 

mutzik

XLDnaute Barbatruc
Re : peut on recuperer le nom de la macro en cours ?

bonjour à tous,

question : quel est l'objet ou la procédure qui va lancer une de ces 100 macros?
pour info, on peut récupérer le nom de l'objet qui a lancé une macr et en fonction du nom, on peut faire le traitement approprié
instruction poour récupérer ce nom : application.caller

par ex : si un cercle que tu appelles C_001 lance la macro, tu peux :
sub macro()
var=application.caller
num=right(var,3)

et dans num tu auras la valeur '001' que tu peux transformer en numérique par cdbl(num) et faire ensuite le traitement approprié

sinon, il faut vraiment un bout de ton fichier...
 
Dernière édition:

Pyrof

XLDnaute Occasionnel
Re : peut on recuperer le nom de la macro en cours ?

Bonjour,

Il est vrai que c'est un peut difficile à comprendre, mais par quel moyen tu vas exécuter macro_10 ou macro_88

Pourquoi ne pas passer le chiffre en argument

macro 10

autre moyen

tu écris les macros:

sub macro_01()
macro 1
end sub

sub macro_02()
macro 2
end sub

......

ensuite étant donnée que toutes tes macros (actuellement) sont identiques, tu en garde une que modifie comme suit

sub macro(sous_macro)
msgbox "macro macro_" & sous_macro & " en cours"
select case sous_macro

case 1
case 2
.....
case 100
end select
 

jarc76

XLDnaute Nouveau
Re : peut on recuperer le nom de la macro en cours ?

salut pyrof,

c'est a peu pret par cette methode que je fais actuellement ...

Salut mutzik,
je pense que tu as mis le doigts dessus : chacune de mes macros est declenché par un clic de checkbox .....

je me presse donc pour aller tester ça de suite .... et je te tiens au courant ....

a plus !!!
 

jarc76

XLDnaute Nouveau
Re : peut on recuperer le nom de la macro en cours ?

autant pour moi !!!

ca fonctionne avec des 'shapes' (cercle, rectangle , etc) mais pas avec des checkbox....

bref, je retourne a la case départ....

en tout cas merci bien Mutzik car j'ai appris une nouvelle fonction ....
 

mutzik

XLDnaute Barbatruc
Re : peut on recuperer le nom de la macro en cours ?

re,
je t'ai fait un petit exemple

question : avec quelle barre d'outils fais-tu tes check boxes ?
 

Pièces jointes

  • ed.xls
    21.5 KB · Affichages: 88
  • ed.xls
    21.5 KB · Affichages: 84
  • ed.xls
    21.5 KB · Affichages: 83
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16