Comment passer des paramètres à une macro distante ?

Le
FPinton
Bonjour à tous,

Jusqu'à présent quand je voulais exécuter une des macros contenues dans un
classeur autre que celui qui était actif, j'écrivais quelque chose comme ça:
Application.Run "MonClasseurDistant.xls'!NomDeLaMacro" et ça fonctionnait
très bien.

Malheureusement aujourd'hui j'ai besoin de faire la même chose mais en
passant des paramètres à la macro que je souhaite éxécuter. Et là, je vous
cache pas que j'ai de gros soucis pour les lui faire passer.

Pour passer 2 paramètres à ma macro :
Le1er fait référence à une cellule
Le 2em est une chaine de caractère.

J'ai écri ça, mais ça ne fonctionne pas.
Application.Run "MonClasseurDistant.xls'!NomDeLaMacro (Range(" & Chr(34) &
"AW40" & Chr(34) & ")," & Chr(34) & "Texte pour faire un Essai"& Chr(34) &
")"

Pouvez vous me dire comment faire pour passer des paramètres à une macro
lancée de cette façon ?

D'avance merci de votre aide !
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #19754291
Bonjour FPinton,

Tu devrais utiliser quelque chose comme :
Cette façon permet des espaces dans le chemin
ou le nom du fichier... on est jamais trop prudent.
Évidemment, tu peux remplacer ThisWorkbook.FullName
par le chemin et le nom du fichier en dur si nécessaire...

Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.FullName & "'!test1"
Application.Run LaMacro

Et pour passer des paramètres à la procédure :
Application.Run LaMacro, "Paramètre1", "Paramètre2"

Quelle est la nature du paramètre : Une chaine de caractère,
une valeur numérique, une plage de cellule... Ce que tu
passes comme paramètre doit être en accord avec le type
de variable défini dans la procédure appelée.
De même, si "Paramètre1", "Paramètre2" sont eux-mêmes
des variables, ils ne prennent pas des guillemets dans la
ligne de commande.





"FPinton" ud0#
Bonjour à tous,

Jusqu'à présent quand je voulais exécuter une des macros contenues dans un
classeur autre que celui qui était actif, j'écrivais quelque chose comme ça:
Application.Run "MonClasseurDistant.xls'!NomDeLaMacro" et ça fonctionnait
très bien.

Malheureusement aujourd'hui j'ai besoin de faire la même chose mais en
passant des paramètres à la macro que je souhaite éxécuter. Et là, je vous
cache pas que j'ai de gros soucis pour les lui faire passer.

Pour passer 2 paramètres à ma macro :
Le1er fait référence à une cellule
Le 2em est une chaine de caractère.

J'ai écri ça, mais ça ne fonctionne pas.
Application.Run "MonClasseurDistant.xls'!NomDeLaMacro (Range(" & Chr(34) &
"AW40" & Chr(34) & ")," & Chr(34) & "Texte pour faire un Essai"& Chr(34) &
")"

Pouvez vous me dire comment faire pour passer des paramètres à une macro
lancée de cette façon ?

D'avance merci de votre aide !
FPinton
Le #19754371
Super, merci MichDenis, la façon de faire que tu me proposes fonctionne à
merveille.
En plus, c'est bien plus simple pour passer les paramètres et bien plus
compréhensible comme ça.

Bonne journée à toi !


"MichDenis"
Bonjour FPinton,

Tu devrais utiliser quelque chose comme :
Cette façon permet des espaces dans le chemin
ou le nom du fichier... on est jamais trop prudent.
Évidemment, tu peux remplacer ThisWorkbook.FullName
par le chemin et le nom du fichier en dur si nécessaire...

Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.FullName & "'!test1"
Application.Run LaMacro

Et pour passer des paramètres à la procédure :
Application.Run LaMacro, "Paramètre1", "Paramètre2"

Quelle est la nature du paramètre : Une chaine de caractère,
une valeur numérique, une plage de cellule... Ce que tu
passes comme paramètre doit être en accord avec le type
de variable défini dans la procédure appelée.
De même, si "Paramètre1", "Paramètre2" sont eux-mêmes
des variables, ils ne prennent pas des guillemets dans la
ligne de commande.





"FPinton" discussion :
ud0#
Bonjour à tous,

Jusqu'à présent quand je voulais exécuter une des macros contenues dans un
classeur autre que celui qui était actif, j'écrivais quelque chose comme
ça:
Application.Run "MonClasseurDistant.xls'!NomDeLaMacro" et ça fonctionnait
très bien.

Malheureusement aujourd'hui j'ai besoin de faire la même chose mais en
passant des paramètres à la macro que je souhaite éxécuter. Et là, je vous
cache pas que j'ai de gros soucis pour les lui faire passer.

Pour passer 2 paramètres à ma macro :
Le1er fait référence à une cellule
Le 2em est une chaine de caractère.

J'ai écri ça, mais ça ne fonctionne pas.
Application.Run "MonClasseurDistant.xls'!NomDeLaMacro (Range(" & Chr(34) &
"AW40" & Chr(34) & ")," & Chr(34) & "Texte pour faire un Essai"& Chr(34) &
")"

Pouvez vous me dire comment faire pour passer des paramètres à une macro
lancée de cette façon ?

D'avance merci de votre aide !



Publicité
Poster une réponse
Anonyme