Anomalie dans un script vbs

Le
Michel Angelosanto
Bonjour,

lorsque j'éxécute le script suivant test.vbs, je devrais avoir Message 2 en
A1 or j'ai Message 3 comme si la macro1 s'était exécutée 2 fois.
De plus à la fermeture du fichier, j'ai le message suivant "Un fichier nommé
resume.xlw existe déja à cet emplacement. Voulez-vous le remplacer ?
D'ou provient ce message que je n'ai pas si j'ouvre et ferme manuellement le
fichier.

____________test.vbs_______________
Dim ex, feuille, contenu ,p
Set ex = CreateObject("Excel.Application")
ex.Application.DisplayAlerts = False
ex.Visible = True
' Fonction de récupération du répertoire courant
Function GetPath()
Dim path
path = WScript.ScriptFullName
GetPath = Left(path, InStrRev(path, ""))
End Function
p=getpath()
Set feuille = ex.Workbooks.Open(p &"TABLEAU.xls")
ex.activesheet.cells(1,1)="Message 1"
ex.run("macro1()")
msgbox(ex.ActiveSheet.Cells(1,1).Value) 'affiche Message 3 au lieu de
Message 2
ex.save
ex.Quit()

_____________________________
la macro dans excel:
Sub Macro1()
Range("A1").Select
n% = Val(Right$(Cells(1, 1), 2))
n% = n% + 1
Cells(1, 1) = "message " & Str$(n%)
End Sub

Michel Angelosanto, Bordeaux
http://angelosa.free.fr/
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
MCI \(ex do ré Mi chel la si do\) [MVP]
Le #6534461
Bonsoir !

C'est normal. Ta macro est lancée automatiquement à l'ouverture de
TABLEAU.xlsm
Supprime la ligne
ex.run("macro1()")
dans ton script, puis lance-le. Tu devrais voir que Macro1 se
déclenchera, sans que tu l'ai appelée explicitement.

@-salutations

Michel Claveau
Michel Angelosanto
Le #6534701
La macro est dans un module de tableau.xls, si j'ouvre le fichier
manuellement, la macro ne s'exécute pas (ce qui est normal).
En enlevant la ligne dans le script, la macro ne se lance pas et aussi, je
n'ai pas le message à la fermeture du fichier.
Est-ce bien comme cela qu'on doit écrire le lancement d'une macro ?

"MCI (ex do ré Mi chel la si do) [MVP]" écrit dans le message de news:u9kUFN%
Bonsoir !

C'est normal. Ta macro est lancée automatiquement à l'ouverture de
TABLEAU.xlsm
Supprime la ligne
ex.run("macro1()")
dans ton script, puis lance-le. Tu devrais voir que Macro1 se déclenchera,
sans que tu l'ai appelée explicitement.

@-salutations

Michel Claveau




--
Michel Angelosanto, Bordeaux
http://angelosa.free.fr/

Michel Angelosanto
Le #6536101
J'ai fait un essai avec la ligne ex.run("macro1")
La macro s'éxécute bien une seule fois et il n'y a pas d'enregistrement
d'une copie du fichier en resume.xlw

si maintenant je code la ligne suivante avec passage d'un paramètre à la
macro
ex.run("macro1(5)")
le paramètre est bien passé à la macro qui s'éxécute de nouveau deux fois et
j'ai de nouveau enregistrement d'une copie en resume.xlw (je suppose que
c'est une erreur qui provoque la création de ce fichier resume.xlw) mais
comment afficher cette erreur?

Dim ex, feuille, contenu ,p
Set ex = CreateObject("Excel.Application")
ex.Application.DisplayAlerts = False
ex.Visible = True
' Fonction de récupération du répertoire courant
Function GetPath()
Dim path
path = WScript.ScriptFullName
GetPath = Left(path, InStrRev(path, ""))
End Function
p=getpath()
Set feuille = ex.Workbooks.Open(p &"TABLEAU.xls")
ex.application.run("macro1(5)") 'cette ligne s'éxécute deux fois
msgbox(ex.ActiveSheet.Cells(1,1).Value)
ex.save
ex.Quit()



"Michel Angelosanto" news:
La macro est dans un module de tableau.xls, si j'ouvre le fichier
manuellement, la macro ne s'exécute pas (ce qui est normal).
En enlevant la ligne dans le script, la macro ne se lance pas et aussi, je
n'ai pas le message à la fermeture du fichier.
Est-ce bien comme cela qu'on doit écrire le lancement d'une macro ?

"MCI (ex do ré Mi chel la si do) [MVP]" a écrit dans le message de news:u9kUFN%
Bonsoir !

C'est normal. Ta macro est lancée automatiquement à l'ouverture de
TABLEAU.xlsm
Supprime la ligne
ex.run("macro1()")
dans ton script, puis lance-le. Tu devrais voir que Macro1 se
déclenchera, sans que tu l'ai appelée explicitement.

@-salutations

Michel Claveau




--
Michel Angelosanto, Bordeaux
http://angelosa.free.fr/


--
Michel Angelosanto, Bordeaux
http://angelosa.free.fr/


Gilles LAURENT [MVP]
Le #6536091
"Michel Angelosanto" wrote:

J'ai fait un essai avec la ligne ex.run("macro1")
La macro s'éxécute bien une seule fois et il n'y a pas d'enregistrement
d'une copie du fichier en resume.xlw

si maintenant je code la ligne suivante avec passage d'un paramètre à la
macro
ex.run("macro1(5)")
le paramètre est bien passé à la macro qui s'éxécute de nouveau deux fois et
j'ai de nouveau enregistrement d'une copie en resume.xlw (je suppose que
c'est une erreur qui provoque la création de ce fichier resume.xlw) mais
comment afficher cette erreur?


Bonjour,

Ce comportement est dû à une erreur de syntaxe sur la méthode Run
Le prototype de la méthode Run :

Function Run ([Macro], [Arg1], ..., [Arg30])

Donc :
Ex.Run "Macro1"
Ex.Run "Macro1", 5

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr

Michel Angelosanto
Le #6536871
Merci beaucoup. Grâce à toi je vais pouvoir continuer mon apprentissage de
bvs
Connais-tu un site ou je peux trouver la syntaxe des commandes vbs
spécifiques à Excel car je débute et je découvre à tatillon.


"Gilles LAURENT [MVP]" news:
"Michel Angelosanto" wrote:

J'ai fait un essai avec la ligne ex.run("macro1")
La macro s'éxécute bien une seule fois et il n'y a pas d'enregistrement
d'une copie du fichier en resume.xlw

si maintenant je code la ligne suivante avec passage d'un paramètre à la
macro
ex.run("macro1(5)")
le paramètre est bien passé à la macro qui s'éxécute de nouveau deux fois
et
j'ai de nouveau enregistrement d'une copie en resume.xlw (je suppose que
c'est une erreur qui provoque la création de ce fichier resume.xlw) mais
comment afficher cette erreur?


Bonjour,

Ce comportement est dû à une erreur de syntaxe sur la méthode Run
Le prototype de la méthode Run :

Function Run ([Macro], [Arg1], ..., [Arg30])

Donc :
Ex.Run "Macro1"
Ex.Run "Macro1", 5

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr



--
Michel Angelosanto, Bordeaux
http://angelosa.free.fr/


Gilles LAURENT [MVP]
Le #6537131
"Michel Angelosanto" wrote:

Connais-tu un site ou je peux trouver la syntaxe des commandes vbs
spécifiques à Excel car je débute et je découvre à tatillon.


La documentation de l'objet COM Excel.Application :

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr

Michel Angelosanto
Le #6540211
Encore merci, j'aurais bien avancé aujourd'hui.


"Gilles LAURENT [MVP]" news:
"Michel Angelosanto" wrote:

Connais-tu un site ou je peux trouver la syntaxe des commandes vbs
spécifiques à Excel car je débute et je découvre à tatillon.


La documentation de l'objet COM Excel.Application :

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr



--
Michel Angelosanto, Bordeaux
http://angelosa.free.fr/


Publicité
Poster une réponse
Anonyme