Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Barre d'outil : "confusion" de lancement de macro

3 réponses
Avatar
Ben
Bonjour,

J'ai créé une barre d'outil qui lance des fonctions.

Le problème est que si je lance plusieurs feuille Excel, la barre
d'outil exécute les fonctions d'une des feuilles (la 1ère lancés il me
semble) et non pas la fonction de la feuille courante.

J'aimerai que la barre exécute la macro de la feuille courante, et
seulement celle de la feuille courante, même si d'autres feuilles, lancé
avant ou non, ont des macros du même nom

Le problème viens sûrement du fait que le bouton lance la macro
"MonClasseur!MaMacro". Il faudrait une référence "dynamique" du style
"la_feuillecourrante!LaMacro"

Est-ce possible ?


Merci d'avance

Ben

3 réponses

Avatar
reno
Activesheet ?



--
---
Renaud Roualdès
Profite, Vivre c'est cool !!!

___

"Ben" a écrit dans le message de
news:461b427d$0$9857$
Bonjour,

J'ai créé une barre d'outil qui lance des fonctions.

Le problème est que si je lance plusieurs feuille Excel, la barre d'outil
exécute les fonctions d'une des feuilles (la 1ère lancés il me semble) et
non pas la fonction de la feuille courante.

J'aimerai que la barre exécute la macro de la feuille courante, et
seulement celle de la feuille courante, même si d'autres feuilles, lancé
avant ou non, ont des macros du même nom

Le problème viens sûrement du fait que le bouton lance la macro
"MonClasseur!MaMacro". Il faudrait une référence "dynamique" du style
"la_feuillecourrante!LaMacro"

Est-ce possible ?


Merci d'avance

Ben


Avatar
Ben
Activesheet ?


Bonne idée. Mais excel me modifie l'affectation de macro.
Si je met : activeSheet!MaMacro
Il transforme en "LeClasseur.xls!Activesheet.MaMacro" forcément, ça ne
marche pas.

Il faudrait effectivement pouvoir intégrer du VBA à cette appel... le
"!" semble indiquer que c'est le cas, mais vu la modification
automatique, j'ai bien peur de devoir absolument passer une chaîne de
caractères. :(

--
Ben

Avatar
Ben
Pour ceux que ça intéresse, voici une solution
Redéfinir le nom de l'action lorsque l'on repasse à la feuille courante,
soit :

Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Application.CommandBars("MaBar").Controls("MonControl").OnAction =
"MonAction"
End Sub

Je trouve ça un peu dommage de devoir faire ça :(

--
Ben

Bonjour,

J'ai créé une barre d'outil qui lance des fonctions.

Le problème est que si je lance plusieurs feuille Excel, la barre
d'outil exécute les fonctions d'une des feuilles (la 1ère lancés il me
semble) et non pas la fonction de la feuille courante.

J'aimerai que la barre exécute la macro de la feuille courante, et
seulement celle de la feuille courante, même si d'autres feuilles, lancé
avant ou non, ont des macros du même nom

Le problème viens sûrement du fait que le bouton lance la macro
"MonClasseur!MaMacro". Il faudrait une référence "dynamique" du style
"la_feuillecourrante!LaMacro"

Est-ce possible ?


Merci d'avance

Ben