code pour connaitre derniere macro utilisée

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

hajorinette

XLDnaute Occasionnel
Le forum, bonjour !

Pour 3 boutons de commande ou chacun est relié à une macro qui effectue une action différente
j'aimerai pouvoir écrire en VBA :

parmi ces trois boutons
si c'est le bouton 1 qui a été actionné en dernier
alors faire action 1

si c'est le bouton 2 qui a été actionné en dernier
alors faire action 2

si c'est le bouton 3 qui a été actionné en dernier
alors faire action 3

je monte un fanclub pour celui ou celle qui trouvera 😀

MERCI
 
Re : code pour connaitre derniere macro utilisée

Bonjour Hajorinette,

Euuuuuuuuh ....

J'ai peur de ne pas avoir saisi 🙂.

Quand tu presses un bouton n auquel est affecté une macro n, cette macro n s'execute, non ?

Donc, si tu veux qu'une action s'execute quand le bouton n est le dernier a avoir été actionné, ne serait il pas une bonne idée que cette action soit contenue dans la macro n, ou même, que cette action soit la macro n ?

Ou j'ai loupé kekchose ?

@+
 
Dernière édition:
Re : code pour connaitre derniere macro utilisée

Bonjour à tous,

pas sûr d'avoir compris...
les 3 boutons sont affectés à la même macro et tu veux identifier le bouton qui l'appelle ?
si c'est ça, essaye la ligne suivante :

Msgbox Application.caller

si c'est pas ça, plus de précisions s'imposent... un exemple concret, avec un bout de fichier exemple...
 
Re : code pour connaitre derniere macro utilisée

bonsoir,
Sûr de rien du tout non plus
Code:
Dim Flag
Sub bouton1()
    Flag = 1
End Sub
Sub bouton2()
    Flag = 2
End Sub
Sub bouton3()
    Flag = 3
End Sub
Sub macro4()
For i = 1 To 3
    If Flag1 = i Then MsgBox "bouton" & i
Next
End Sub
😀
A+
kjin
 
Re : code pour connaitre derniere macro utilisée

ngogoisidore, tototiti2008, kjin , le forum , bien le bonsoir!

Vu le succès remporté je vais tout détailler:
J'ai un dossier de 4 feuilles

Sur la feuille 1 :3 boutons de contrôle + données qu'on change régulièrement


la macro1(bouton 1)-->exécuter des copier coller des données sur la feuille 2

la macro2(bouton 2)-->exécuter des copier coller des données sur la feuille 3

la macro3(bouton 3)-->exécuter des copier coller des données sur la feuille 4

Selon les cas qui se présentent on appuie sur UN des boutons (1,2ou 3) et la feuille correspondante est renseignée

Or je ne veut récupérer QUE la feuille renseignée donc je dois être en mesure de connaitre la dernière macro exécutée

En ésperant avoir été claire

Merci encore
le fanclub tiens tjrs 😛
 
Re : code pour connaitre derniere macro utilisée

Euh j'ai oublié de mentionner que la récupérations de la feuille ne peut pas se faire systématiquement après les actions des macros 1,2 ou 3
car entre les copier coller et la récupération il ya une action importante d'une autre macro(attribution d'un N° aux feuilles 2,3 et 4)
Tout ça pour dire 😱bligée de scinder l'action
Sur ce, bonne nuit
 
Re : code pour connaitre derniere macro utilisée

Bonsoir à tous !

Enfin, pour moi c'est le matin 🙂.

Hajorinette, je ne se suis toujours pas sur que tu ne puisses pas "récupérer la feuille renseignée" directement dans la macro du bouton, même si cette macro doit en appeler une autre, que je vais appeler autremacro, dont la fonction est, entre autre, d'attribuer un numéro aux feuilles 2, 3 et 4.

Si autremacro est appelée à partir de la macro du bouton, tu peux, par exemple :

  • Soit, passer en paramètre l'indice ou le nom du bouton à autremacro et, en fonction de la valeur de ce paramètre, "récupérer la feuille renseignée" dans autremacro.

  • Soit, quand autremacro est terminée et que le flux de ton code "revient" à la macro du bouton, "récupérer la feuille renseignée" dans la macro du bouton.

Sinon, comme kjin le propose, tu peux définir une variable (Flag) globale au module qui contient toutes tes macros, ce qui la rend accessible depuis n'importe quelle procédure ou fonction de ce module.
Il te suffit alors d'affecter cette variable globale avec l'indice du bouton quand ta macro de bouton est executée, ce qui "mémorise", au niveau du module, le dernier bouton actionné. Puis, "récupérer la feuille renseignée" en fonction de cette valeur, depuis n'importe quelle procédure du module (autremacro, par exemple).

Bonne nuit 🙂!

@+
 
Dernière édition:
Re : code pour connaitre derniere macro utilisée

Bonjour à tous,

je crois en effet que la piste de kjin est la bonne,

au début de chaque macro lancée par les boutons, tu affectes une valeur à une variable (Flag dans l'exemple de kjin) et au début de ta macro de récupération tu testes la valeur de Flag (avec des If ou un Select Case) pour récupérer la feuille appropriée...
 
Re : code pour connaitre derniere macro utilisée

Bonjour à tous,

Normalement en VBA il est inutile de sélectionner quoi que ce soit.

Mais là, si dans les macros on sélectionne la feuille concernée par les copier/coller, on peut la récupérer facilement par ActiveSheet...

Bon, ça ne doit pas être ça 😉

A+
 
Re : code pour connaitre derniere macro utilisée

Bonjour le forum !

Ce soir je passerai le temps qu'il faudra pour tester les solutions proposées, notamment celle de Kjin , et je vous tiendrai au courant ( tard probablemnt )
Les propositions de Ngogoisidore sont pertinentes je vais essayer également de les traduire en VBA même si pour la deuxième ça sera plus chaud!

un grand merci à tout le monde
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
32
Affichages
1 K
Réponses
3
Affichages
886
  • Question Question
Microsoft 365 Code listbox
Réponses
4
Affichages
671
Retour