Souci d'affectation de variables entre deux macros
2 réponses
Ludovic Laé
Bonjour,
j'ai un petit souci d'affectation de variables entre deux macros se
trouvant dans deux fichiers distincts, ouverts tous les deux.
Voici la macro appelée dans le fichier Fichier1.xls :
sub Treat_File(ByRef ACol as long, Bref ARow as long)
ACol=1
ARow=1
end sub
Voici la macro appelante dans le fichier Fichier2.xls
sub Test()
dim Row as long
Dim Col as long
Row=0
Col=0
Application.run "Fichier1.xls!Treat_File", Row, Col
msgbox Str(Row)
msgbox Str(Col)
end sub
En mode debug, je vois parfaitement que la macro Treat_File est
correctement appelée. ARow et ACol valent bien 0 dans Treat_File. Leur
initialisation à 1 s'effectue et pourtant... Row vaut toujours 0 dans la
msgbox et Col aussi.
Tout se passe comme si j'avais défini ARow et ACol comme "Byval".
Jean-François Aubert {Vaudois de la Côte Lémanique}
"Ludovic Laé" a écrit dans le message de news:
Bonjour,
j'ai un petit souci d'affectation de variables entre deux macros se trouvant dans deux fichiers distincts, ouverts tous les deux.
Voici la macro appelée dans le fichier Fichier1.xls :
sub Treat_File(ByRef ACol as long, Bref ARow as long) ACol=1 ARow=1 end sub
Voici la macro appelante dans le fichier Fichier2.xls
sub Test() dim Row as long Dim Col as long
Row=0 Col=0
Application.run "Fichier1.xls!Treat_File", Row, Col
msgbox Str(Row) msgbox Str(Col) end sub
En mode debug, je vois parfaitement que la macro Treat_File est correctement appelée. ARow et ACol valent bien 0 dans Treat_File. Leur initialisation à 1 s'effectue et pourtant... Row vaut toujours 0 dans la msgbox et Col aussi.
Tout se passe comme si j'avais défini ARow et ACol comme "Byval".
Si quelqu'un a une idée... Merci d'avance :)
Salut Ludovic,
apparemment on ne peux pas retourner la valeur des variable depuis le
fichier "appelé"
alors j'ai adapté tes macros avec une réponse faite par Michdenis en 2003
(cela nous rajeunit pas !)
Sub Test()
Dim Row As Long
Dim Col As Long
Dim leFich
Jean-François Aubert
{Vaudois de la Côte Lémanique}
"Ludovic Laé" <ludovic.lae@llae.net> a écrit dans le message de news:
uuupsmXqJHA.1172@TK2MSFTNGP04.phx.gbl...
Bonjour,
j'ai un petit souci d'affectation de variables entre deux macros se
trouvant dans deux fichiers distincts, ouverts tous les deux.
Voici la macro appelée dans le fichier Fichier1.xls :
sub Treat_File(ByRef ACol as long, Bref ARow as long)
ACol=1
ARow=1
end sub
Voici la macro appelante dans le fichier Fichier2.xls
sub Test()
dim Row as long
Dim Col as long
Row=0
Col=0
Application.run "Fichier1.xls!Treat_File", Row, Col
msgbox Str(Row)
msgbox Str(Col)
end sub
En mode debug, je vois parfaitement que la macro Treat_File est
correctement appelée. ARow et ACol valent bien 0 dans Treat_File. Leur
initialisation à 1 s'effectue et pourtant... Row vaut toujours 0 dans la
msgbox et Col aussi.
Tout se passe comme si j'avais défini ARow et ACol comme "Byval".
Jean-François Aubert {Vaudois de la Côte Lémanique}
"Ludovic Laé" a écrit dans le message de news:
Bonjour,
j'ai un petit souci d'affectation de variables entre deux macros se trouvant dans deux fichiers distincts, ouverts tous les deux.
Voici la macro appelée dans le fichier Fichier1.xls :
sub Treat_File(ByRef ACol as long, Bref ARow as long) ACol=1 ARow=1 end sub
Voici la macro appelante dans le fichier Fichier2.xls
sub Test() dim Row as long Dim Col as long
Row=0 Col=0
Application.run "Fichier1.xls!Treat_File", Row, Col
msgbox Str(Row) msgbox Str(Col) end sub
En mode debug, je vois parfaitement que la macro Treat_File est correctement appelée. ARow et ACol valent bien 0 dans Treat_File. Leur initialisation à 1 s'effectue et pourtant... Row vaut toujours 0 dans la msgbox et Col aussi.
Tout se passe comme si j'avais défini ARow et ACol comme "Byval".
Si quelqu'un a une idée... Merci d'avance :)
Ludovic Laé
Merci pour la réponse. C'est très étonnant cette histoire car lorsque j'appelle cette même macro Treat_File (dans un autre cadre) via OLE ; ça fonctionne bien en byref.
Jean-François Aubert a écrit :
Salut Ludovic, apparemment on ne peux pas retourner la valeur des variable depuis le fichier "appelé"
alors j'ai adapté tes macros avec une réponse faite par Michdenis en 2003 (cela nous rajeunit pas !)
Sub Test() Dim Row As Long Dim Col As Long Dim leFich
Merci pour la réponse. C'est très étonnant cette histoire car lorsque
j'appelle cette même macro Treat_File (dans un autre cadre) via OLE ; ça
fonctionne bien en byref.
Jean-François Aubert a écrit :
Salut Ludovic,
apparemment on ne peux pas retourner la valeur des variable depuis le
fichier "appelé"
alors j'ai adapté tes macros avec une réponse faite par Michdenis en 2003
(cela nous rajeunit pas !)
Sub Test()
Dim Row As Long
Dim Col As Long
Dim leFich
Merci pour la réponse. C'est très étonnant cette histoire car lorsque j'appelle cette même macro Treat_File (dans un autre cadre) via OLE ; ça fonctionne bien en byref.
Jean-François Aubert a écrit :
Salut Ludovic, apparemment on ne peux pas retourner la valeur des variable depuis le fichier "appelé"
alors j'ai adapté tes macros avec une réponse faite par Michdenis en 2003 (cela nous rajeunit pas !)
Sub Test() Dim Row As Long Dim Col As Long Dim leFich