Lancer un .bat depuis une macro VBA Word

Résolu/Fermé
nanou2183 Messages postés 46 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 15 juin 2010 - 2 déc. 2009 à 09:14
 refflex - 10 sept. 2016 à 10:27
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
A voir également:

17 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
2 déc. 2009 à 09:33
Bonjour,

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

Merci.

;o)
0
nanou2183 Messages postés 46 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 15 juin 2010 11
2 déc. 2009 à 09:41
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
0
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)
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
2 déc. 2009 à 10:00
Je suppose que tu as testé le fichier .bat et qu'il fonctionne ?
0
nanou2183 Messages postés 46 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 15 juin 2010 11
2 déc. 2009 à 10:01
Effectivement il fonctionne très bien
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
2 déc. 2009 à 10:16
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.

0
nanou2183 Messages postés 46 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 15 juin 2010 11
2 déc. 2009 à 10:30
Bonjour,

Je l'ai mis sur mon bureau pour enlever les accents
mais ca ne fonctionne pas mieux
0
nanou2183 Messages postés 46 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 15 juin 2010 11
2 déc. 2009 à 10:32
Est ce normal que mon .bat ne fonctionne plus sur le bureau ?
0
nanou2183 Messages postés 46 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 15 juin 2010 11
2 déc. 2009 à 10:36
Ok le bat marche mais ca fait toujours rien dans mon Word
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
2 déc. 2009 à 10:43
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.

0
nanou2183 Messages postés 46 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 15 juin 2010 11
2 déc. 2009 à 10:47
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
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
2 déc. 2009 à 10:55
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 ...
0
nanou2183 Messages postés 46 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 15 juin 2010 11
2 déc. 2009 à 11:02
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 ... ?
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
2 déc. 2009 à 11:07
Ta macro AutoOpen() se lance comment ?
0
nanou2183 Messages postés 46 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 15 juin 2010 11
2 déc. 2009 à 11:07
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 ?
0
nanou2183 Messages postés 46 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 15 juin 2010 11
2 déc. 2009 à 11:08
Elle se lance à l'ouverture de Word
0
nanou2183 Messages postés 46 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 15 juin 2010 11
2 déc. 2009 à 11:40
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 ?
0
Merci des informations qui servent encore aujourd' hui.

cdlt
0