Les Allergies
Alimentaires
Posez votre question Signaler

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

nanou2183 48Messages postés 19 février 2007Date d'inscription 15 juin 2010Dernière intervention - Dernière réponse le 21 déc. 2009 à 17:28
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
Lire la suite 

Lancer un .bat depuis une macro VBA Word »

17 réponses
Réponse
+0
moins plus
Bonjour,

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

Merci.

;o)
Ajouter un commentaire
Réponse
+0
moins plus
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
ezine - 21 déc. 2009 à 17:28
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)
Ajouter un commentaire
Réponse
+0
moins plus
Je suppose que tu as testé le fichier .bat et qu'il fonctionne ?
Ajouter un commentaire
Réponse
+0
moins plus
Effectivement il fonctionne très bien
Ajouter un commentaire
Réponse
+0
moins plus
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.

Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Je l'ai mis sur mon bureau pour enlever les accents
mais ca ne fonctionne pas mieux
Ajouter un commentaire
Réponse
+0
moins plus
Est ce normal que mon .bat ne fonctionne plus sur le bureau ?
Ajouter un commentaire
Réponse
+0
moins plus
Ok le bat marche mais ca fait toujours rien dans mon Word
Ajouter un commentaire
Réponse
+0
moins plus
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.

Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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 ...
Ajouter un commentaire
Réponse
+0
moins plus
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 ... ?
Ajouter un commentaire
Réponse
+0
moins plus
Ta macro AutoOpen() se lance comment ?
Ajouter un commentaire
Réponse
+0
moins plus
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 ?
Ajouter un commentaire
Réponse
+0
moins plus
Elle se lance à l'ouverture de Word
Ajouter un commentaire
Réponse
+0
moins plus
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 ?
Ajouter un commentaire
Ce document intitulé « Lancer un .bat depuis une macro VBA Word » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?