Comment passer des paramètres à une macro distante ?
2 réponses
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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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" a écrit dans le message de groupe de 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 !
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" <maboite@free.fr> a écrit dans le message de groupe de discussion :
ud0#MPIBKHA.5780@TK2MSFTNGP03.phx.gbl...
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 ?
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" a écrit dans le message de groupe de 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 !
FPinton
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" a écrit dans le message de news:
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" a écrit dans le message de groupe de 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 !
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" <michdenis@hotmail.com> a écrit dans le message de news:
OR5OlhIBKHA.4004@TK2MSFTNGP05.phx.gbl...
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" <maboite@free.fr> a écrit dans le message de groupe de
discussion :
ud0#MPIBKHA.5780@TK2MSFTNGP03.phx.gbl...
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 ?
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" a écrit dans le message de news:
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" a écrit dans le message de groupe de 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 ?