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écuter une commande DOS


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut Exécuter une commande DOS
    Bon je commence à me tirer les cheveux sur ma macro.

    Je dois lancer à la fin de celle ci une commande dos qui traite un fichier que je viens de créer dans ma feuille excel. Cette commande semblait marcher il fut un temps, et maintenant il semble que ça ne marche plus vraiment. J'ai beau tourner et retourner encore le schmiblick, le fichier ne veux pas se lancer.

    Voilà le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set oShell = CreateObject("WScript.Shell")
      oShell.Run ThisWorkbook.Path & "\run.bat < " & ThisWorkbook.Path & "\requests.sql"
      'oShell.Run ThisWorkbook.Path & "\mysql.exe --password=passx -u username -h 128.0.0.1 db < " & ThisWorkbook.Path & "\requests.sql"
    La seconde ligne commentée correspond en gros à ce qui se trouve dans le .bat

    Si je lance le bat moi même avec la redirection, ça marche, mais là dans l'état non, semble t'il qu'il me rajoute un '0' avant le < de la redirection qui fait un peu tout péter. Je sais plus trop à quel sain me vouer, donc si vous avez une idée...?

  2. #2
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Points : 870
    Points
    870
    Par défaut
    Bonjour,
    Peut etre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call shell(ThisWorkbook.Path & "\run.bat < " & ThisWorkbook.Path & "\requests.sql")

  3. #3
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Non ça ne marche pas.

    En fait il ne veux pas me lancer le batch parce qu'il ne reconnait pas le fichier vu qu'il ne considère pas le répertoire de travail comme étant le répertoire où est stocké le .xls d'où est lancé la macro, donc je dois lancer l'exécutable avec toutes les options, mais même là ça ne marche pas, je pense qu'il ne doit pas aimer la longue ligne de commande, il ne doit prendre qu'un seul fichier sans options.

    Un peu pourri quand même ce truc de shell...

    Edit: finalement en utilisant la commande:
    oShell.CurrentDirectory = ThisWorkbook.Path

    J'ai réussi à changer le répertoire courant et à lancer mon .bat

    Ce n'était pas vraiment ce que je voulais mais ça marche.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/05/2009, 16h33
  2. Exécuter une commande DOS avec VB.net 2005
    Par peregna2007 dans le forum VB.NET
    Réponses: 2
    Dernier message: 20/08/2008, 11h42
  3. Exécuter une commande DOS en JAVA
    Par WerKa dans le forum Langage
    Réponses: 3
    Dernier message: 05/03/2008, 11h03
  4. Exécuter une commande dos et PAnsiChar
    Par neuneu1 dans le forum Débuter
    Réponses: 9
    Dernier message: 18/02/2008, 19h09
  5. [VB.NET] exécuter une command Dos à Partir de Vb.Net
    Par Khalid.bounouader dans le forum Windows Forms
    Réponses: 4
    Dernier message: 27/12/2006, 14h05

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