code pour connaitre derniere macro utilisée

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 :D

MERCI
 

ngogoisidore

XLDnaute Occasionnel
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:

tototiti2008

XLDnaute Barbatruc
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...
 

kjin

XLDnaute Barbatruc
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
:D
A+
kjin
 

hajorinette

XLDnaute Occasionnel
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 :p
 

hajorinette

XLDnaute Occasionnel
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 :eek:bligée de scinder l'action
Sur ce, bonne nuit
 

ngogoisidore

XLDnaute Occasionnel
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:

tototiti2008

XLDnaute Barbatruc
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...
 

job75

XLDnaute Barbatruc
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+
 

hajorinette

XLDnaute Occasionnel
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
 

kjin

XLDnaute Barbatruc
Re : code pour connaitre derniere macro utilisée

Bonsoir,
En indiquant simplement son nom dans la procédure
Code:
Sub macro1()
MsgBox "c'est le coucou de la macro2"
End Sub

Sub macro2()
macro1  'ou bien Call macro1
End Sub
A+
kjin
 

Discussions similaires

Réponses
4
Affichages
351
Réponses
13
Affichages
205

Statistiques des forums

Discussions
312 520
Messages
2 089 296
Membres
104 092
dernier inscrit
karbone57