Lancer un .bat depuis une macro VBA Word [Résolu/Fermé]

Signaler
Messages postés
46
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
15 juin 2010
-
 refflex -
Bonjour,

J'utilise VB pour automatiser un rapport Word et il ne me reste plus qu'une étape.
Un programme R que je lance automatiquement via un fichier .bat me génère des graphs qui sont ensuite insérés par VB dans mon doc Word.
J'aurai voulu savoir si ma macro VB peut lancer mon .bat pour générer les graphs et ensuite les insérer.
J'ai trouvé en cherchant un peu qu'il fallait que j'utilise la commance Shell mais cela ne fonctionne pas. le fichier bat n'est pas lancer.

Merci d'avance de votre aide
Nathalie

17 réponses

Messages postés
6941
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 102
Bonjour,

Peux-tu nous mettre ici le bout de code avec ta commande Shell, stp ?

Merci.

;o)
Messages postés
46
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
15 juin 2010
11
Sub AutoOpen()
'
' SelectionDateEnTete Macro
' Macro enregistrée le 05/11/2009 par simon-nat
'

' Gestion des dates en En Tête

Shell ("Q:\CLIMAT\5_Previsions_du_climat\Prévisions saisonnières\Bulletins hebdomadaires\Outils pour le verso de Celsius\Utilitaire_Celsius_pour_vista_nathalie.bat")


Et après il y a tout mon code de mise en page

Et ca c'est ce qu'il y a dans mon .bat qui lance un programme R
@ECHO OFF
Regfree -EnvPathAdd "C:\PROGRA~1\R\R-2.5.0\bin"
Rterm --slave < Utilitaire_Celsius_pour_vista_nathalie.R >Utilitaire_Celsius_pour_vista_nathalie.log
J'ai eut le même pb que toi, je pense que le défaut provient de la longueur du nom de ton répertoire.
La fonction shell ne semble pas accepter des paramètres trop long.

Pour contourner le pb tu peux mettre juste avant le lancement de ton shell un chdir qui change le répertoire ou se lance ton shell

Dim Rep as String
Rep = "C:\Documents and Settings\xxxx\Bureau\"
Chdir Rep
Appli = Shell("Macro.bat", 1)
Messages postés
6941
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 102
Je suppose que tu as testé le fichier .bat et qu'il fonctionne ?
Messages postés
46
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
15 juin 2010
11
Effectivement il fonctionne très bien
Messages postés
6941
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 102
C'est dans le chemin d'accès au fichier qu'il y a un problème.

De mémoire, il me semble que les accents ne sont pas trop appréciés par le DOS et peut être sur le nombre de caractères de la commande.

Messages postés
46
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
15 juin 2010
11
Bonjour,

Je l'ai mis sur mon bureau pour enlever les accents
mais ca ne fonctionne pas mieux
Messages postés
46
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
15 juin 2010
11
Est ce normal que mon .bat ne fonctionne plus sur le bureau ?
Messages postés
46
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
15 juin 2010
11
Ok le bat marche mais ca fait toujours rien dans mon Word
Messages postés
6941
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 102
Je ne vois pas alors d'où peut venir le problème.

Met ton fichier .bat sur le disque C et met ça dans un module sous Word

Sub Test
   Shell ("C:\Utilitaire_Celsius_pour_vista_nathalie.bat")
End Sub


Met le curseur sur la ligne du Shell et fait F8 puis F5 pour voir si le fichier .bat se lance.

Messages postés
46
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
15 juin 2010
11
quand je fais F8 ca met la première ligne en jaune
puis F5
rien
...

par contre quand je lance la macro normalement ca fonctionne ... ??
Je ne comprends plus rien à ce qu'il se passe
Messages postés
6941
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 102
La ligne en jaune quand tu fais F8, c'est normal, c'est le passage en mode Débogage en pas à pas. F5 exécute le code en mode normal.

Quand tu lances la macro Test, le fichier .bat s'exécute ??? Ôo ...

C'est étrange comme comportement ...
Messages postés
46
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
15 juin 2010
11
En fait il faut que tout soit au meme endroit ?
pg R, bat et word ?

Car comme ca ca a l'air de marcher
Par contre quand je copie ma ligne de commande dans mon pg ca marche plus ... ?
Messages postés
6941
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 102
Ta macro AutoOpen() se lance comment ?
Messages postés
46
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
15 juin 2010
11
Ok j'ai encore une question
Ce que j'ai fait
j'ai fait un sub test comme tu as fait
et je l'appelle dans ma macro
ca a l'air de fonctionner
mais je voudrai que la suite ne se déclenche qu'une fois le programme R (bat) soit terminé.

Est ce possible ?
Messages postés
46
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
15 juin 2010
11
Elle se lance à l'ouverture de Word
Messages postés
46
Date d'inscription
lundi 19 février 2007
Statut
Membre
Dernière intervention
15 juin 2010
11
Ok j'ai encore une question
Ce que j'ai fait
j'ai fait un sub test comme tu as fait
et je l'appelle dans ma macro
ca a l'air de fonctionner
mais je voudrai que la suite ne se déclenche qu'une fois le programme R (bat) soit terminé.

Est ce possible ?
Merci des informations qui servent encore aujourd' hui.

cdlt