IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Exécution d'un batch interne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 70
    Par défaut Exécution d'un batch interne
    Bonjour,

    J'ai un problème d'exécution de mon batch que je créé, rempli et exécute directement dans ma macro.

    La création et le remplissage se passent bien mais le programme n'arrive pas à exécuter la macro, il ne se passe rien...

    Ma macro:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub testLancementBatch()
     
    Dim fileObject As Object
    Dim file As Object
     
    'Pour creer le fichier texte
    Set fileObject = CreateObject("Scripting.FileSystemObject")
    Set file = fileObject.CreateTextFile("C:\Documents and Settings\at91768\Bureau\excel batch\essai.bat")
    'Pour écrire dans le fichier texte
    With file
    .writeLine "@ECHO OFF"
    .writeLine "pause"
    End With
    ShellPatient "C:\Documents and Settings\at91768\Bureau\excel batch\essai.bat"
    End Sub
    (Je vous ai pas mis la fonction ShellPatient qui permet d'attendre la fin du batch avant de lancer les commandes suivantes (testé et fonctionnel).

    A noté que: Si je lance manuellement mon batch, cela marche.
    Si je lance n'importe quel batch qui n'a pas été créé dans la macro, cela marche.

    Merci d'avance

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Par défaut
    Bonjour,
    je crois que c'est lié à la manière d'écrire le fichier.

    Essaye plutôt un truc dans ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    file1 = "C:\Documents and Settings\at91768\Bureau\excel batch\essai.bat"
    Open file1 For Output As #1
        Print #1, "@ECHO OFF"
        Print #1, "pause"
    Close #1
     
    ShellPatient "C:\Documents and Settings\at91768\Bureau\excel batch\essai.bat"

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 70
    Par défaut
    Merci ça marche.

    J'ai aussi trouvé comment le faire fonctionner avec .writeLine, il faut faire la création et le remplissage dans une fonction et appeler la fonction puis exécuter le batch.

    Ce qui donne:
    CreationRempBatch()
    Shell(patati)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DOS] Exécution d'un batch sans fenêtre ?
    Par Cederic dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 18/03/2008, 18h11
  2. Exécuter un fichier batch
    Par Shugo78 dans le forum C
    Réponses: 10
    Dernier message: 13/06/2007, 14h01
  3. Réponses: 5
    Dernier message: 26/05/2007, 19h28
  4. [Servlet]Exécution d'un batch
    Par tscoops dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 27/01/2005, 16h55
  5. [JSP]Exécution d'un batch
    Par tsco_ops dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 17/07/2003, 14h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo