Lancer un .bat depuis une macro VBA Word

Résolu
nanou2183 Messages postés 48 Statut Membre -  
 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
Configuration: Windows 2000
Firefox 3.0.15

17 réponses

  1. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

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

    Merci.

    ;o)
    0
  2. nanou2183 Messages postés 48 Statut Membre 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
    0
    1. ezine
       
      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
  3. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Je suppose que tu as testé le fichier .bat et qu'il fonctionne ?
    0
  4. nanou2183 Messages postés 48 Statut Membre 11
     
    Effectivement il fonctionne très bien
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
  7. nanou2183 Messages postés 48 Statut Membre 11
     
    Bonjour,

    Je l'ai mis sur mon bureau pour enlever les accents
    mais ca ne fonctionne pas mieux
    0
  8. nanou2183 Messages postés 48 Statut Membre 11
     
    Est ce normal que mon .bat ne fonctionne plus sur le bureau ?
    0
  9. nanou2183 Messages postés 48 Statut Membre 11
     
    Ok le bat marche mais ca fait toujours rien dans mon Word
    0
  10. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
  11. nanou2183 Messages postés 48 Statut Membre 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
    0
  12. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
  13. nanou2183 Messages postés 48 Statut Membre 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 ... ?
    0
  14. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Ta macro AutoOpen() se lance comment ?
    0
  15. nanou2183 Messages postés 48 Statut Membre 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 ?
    0
  16. nanou2183 Messages postés 48 Statut Membre 11
     
    Elle se lance à l'ouverture de Word
    0
  17. nanou2183 Messages postés 48 Statut Membre 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 ?
    0
  18. refflex
     
    Merci des informations qui servent encore aujourd' hui.

    cdlt
    0