125218

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
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 288112

Url: https://administrator.de/forum/vba-shell-befehl-asynchron-288112.html

Ausgedruckt am: 03.05.2025 um 03:05 Uhr

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.