125218
Goto Top

VBA Shell Befehl asynchron

Guten Abend,
ich bin im Moment dran ein Makro zu schreiben, dass eine Batch-Datei ausführen soll. Diese Batch-Datei durchsucht eine Datenbank nach einer Variablen, die ich aus einer Zelle in Excel mit gegeben habe. Das funktioniert auch prima. Die Batch-Datei erstellt mit dem Ergebnis eine txt-Datei. Aus dieser sollen dann anschließend im Makro Ergebnisse lesen. Jetzt das Problem: ich rufe die Batch-Datei mit einem shell-Befehl auf. Dadurch wartet aber das Makro nicht, bis die Batch die txt-Datei erstellt hat, arbeitet direkt weiter und bringt dann logischerweise die Fehlermeldung 'txt existiert nicht'.
Nun wurde mir der WScript Befehl empfohlen. Leider werde ich daraus absolut nicht schlüsslig.
WIe kann ich also die nötige Pause in mein Makro bringen, dass die Batch vollständig ausgeführt wurde und erst dann weiter gearbeitet wird?

Liebe Grüße
Saskia

Content-Key: 288112

Url: https://administrator.de/contentid/288112

Ausgedruckt am: 29.03.2024 um 08:03 Uhr

Mitglied: emeriks
emeriks 11.11.2015 aktualisiert um 21:27:10 Uhr
Goto Top
Hi,
z.B. so
CreateObject("Wscript.Shell").Run "die-batch.cmd",0,True  

Das "True" sorgt dafür, dass der Befehl wartet, bis der gestartete Prozess beendet wird. Kommt darauf an, was man da in der Batch startet. Wenn Du z.B. dort kein Kommandozeilen-Programm startest sondern ein Windows-Programm, z.B. "notepad.exe", dann würde die Batch weitermachen ohne auf Notepad zu warten. Es sei denn, man startet in diesem Beispiel Notepad mit "start /wait notepad.exe"

E.