Appel de macro dont le nom est dans une variable

  • Initiateur de la discussion Kris 1010
  • Date de début
K

Kris 1010

Guest
Bonjour,

Question :
Le sujet du message est presque suffisant ...

J'aimerai executer une macro d'un autre classeur
dont le nom de la macro est dans une cellule

La macro à atteindre n'est pas dans un module mais dans une feuille.
La macro à atteindre est Public .

Je ne trouve pas la synthaxe permettant ceci.
exemple :
toto = Workbooks("Classeur").Worksheets("Feuile1").Range("A1").Value
' toto contient le nom de la macro

Run Workbooks("Class2").Worksheets("Feuile1").toto
ne fonctionne pas

ou
Workbooks("Class2").Worksheets("Feuile1").toto
ne fonctionne pas non plus puisque toto n'est pas le nom de la macro

Merci d'avance ...
 
M

Michel_M

Guest
bonsoir Kris,

dans le fichier source:

sub depart()
dim var as string
'dans A1 il y a marqué: mavar

Var = Range("A1")
Windows("cible.xls").Activate
Application.Run "cible.xls!Feuil1." & Var
End Sub


dans le fichier cible en feuil1 de VBE

Sub mavar()

Range("B2") = "gagné"
End Sub

bonne soirée
 
K

Kris 1010

Guest
Bonsoir,

J'ai ENFIN trouvé la raison du blocage de

Application.Run "Classeur.xls!Feuil1.macro"

Dans cette fonction, "Feuil1" n'est pas le nom de l'onglet
mais le nom de l'object VBA apparaissant dans la fenêtre projet (le nom de
l'onglet appairaissant entre parenthèses).

Pour un nouveau classeur,
le nom de l'onglet et le nom de l'object sont identiques : "Feuil1" .

Mais si on renomme l'onglet : exemple : "toto"
la fonction Application.Run doit être
Application.Run "Classeur.xls!Feuil1.macro"
et non pas
Application.Run "Classeur.xls!toto.macro"

Je ne comprends pourquoi mais pour ma part, c'était la raison du bug.

Kris,
 

Discussions similaires

Statistiques des forums

Discussions
312 214
Messages
2 086 311
Membres
103 175
dernier inscrit
abcc