Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Aufruf Batch-Datei Shell-Befehl

VBA Aufruf Batch-Datei Shell-Befehl
16.05.2019 15:11:06
Christoph
Hallo,
ich habe in einem Makro eine Zeile, die eine Batch-Datei aufruft, die dann entsprechend Exporte _
ausführt.

Sub Aktualisieren()
'öffnen der Bat-Datei für den Export der Auswertungen aus Datev
Export = Shell("X:\Fibu\Gruppe\Export Datev\Stapelexport.bat", 1)
End Sub

X ist ein gemappter Netzwerkpfad
Der Code funktionierte bislang auch täglich. Vor ca. zwei Tagen hatte ich erst die Fehlermeldung, dass es sich um einen "ungültigen Prozeduraufruf oder ungültiges Argument" handelt und aktuell wird die Zeile ohne Wirkung einfach übersprungen (bei Makroaufruf oder auch bei F8-Sprüngen).
Ich habe den Code nicht geändert, die Datei existiert auch noch an dem Speicherort und kann auch über den Windows-Explorer ausgeführt werden.
In jüngster Zeit habe ich ein Update von der Virensoftware erhalten und die Platte wurde gescant, ansonsten ist nix am System außergewöhnliches passiert.
Eine Recherche hat mir bezüglich diese Befehls auch keine Neuerung gebracht.
Vielleicht wisst ihr ja Rat.
Viele Grüße
Christoph
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Trickkiste
16.05.2019 15:28:36
Fennek
Hallo,
mit einem tiefen Griff in die Trickkiste sollte es immer noch gehen:
zuerst einen Link (*.lnk) auf die .bat - Datei anlegen und dann

Sub T_1()
ret = Shell(Environ("Comspec") & " /c c:\temp\Test_dir.bat.lnk", vbHide)
Debug.Print ret
End Sub
mfg
Anzeige
AW: Trickkiste
17.05.2019 08:02:12
Christoph
Hi Fennek,
Danke, funktioniert, wobei es tatsächlich der Admin war, der meine Sicherheitsrichtlinie hochgesetzt hat.
LG
Christoph
oder folgendes Probieren
16.05.2019 16:05:41
mmat
Gibt's den Netzwerkpfad noch?
Gibt's die Batchdatei noch?
Steht in der Batchdatei auch was drin?
--> Dann muss sie sich auch von der Commandozeile aus aufrufen lassen.
Falls nicht versuche es mit umbenennen: statt "*.bat" --> ".cmd"
(.bat ist eigentlich seit Windows 3.11 out :-) )
Falls alles nix hilft, vielleicht hat ein paranoischer Admin die Batchfunktion abgeklemmt oder der Virenwächter unterdrückt die Ausführung.
vg, MM
Anzeige
AW: oder folgendes Probieren
17.05.2019 08:03:16
Christoph
Hi MM,
Danke. Es war der Admin, der meine Sicherheitsrichtlinie im Antivirenprogramm hochgesetzt hat.
LG
Christoph
;
Anzeige
Anzeige

Infobox / Tutorial

Batch-Datei mit VBA ausführen: Ein umfassender Leitfaden


Schritt-für-Schritt-Anleitung

Um eine Batch-Datei in Excel über VBA auszuführen, kannst du den folgenden Code verwenden:

Sub Aktualisieren()
    ' Öffnen der Batch-Datei für den Export von Daten
    Export = Shell("X:\Fibu\Gruppe\Export Datev\Stapelexport.bat", vbNormalFocus)
End Sub

Schritte:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu (Einfügen > Modul).
  3. Kopiere den obenstehenden Code in das Modul.
  4. Passe den Pfad zur Batch-Datei an, falls nötig.
  5. Führe das Makro aus, um die Batch-Datei zu starten.

Wenn du Probleme mit dem Aufruf der Batch-Datei hast, überprüfe, ob der Netzwerkpfad korrekt ist und ob die Datei noch vorhanden ist.


Häufige Fehler und Lösungen

Fehler 1: Ungültiger Prozeduraufruf oder ungültiges Argument

  • Dieser Fehler kann auftreten, wenn der Pfad zur Batch-Datei nicht korrekt ist. Überprüfe den Pfad und stelle sicher, dass die Datei existiert.

Fehler 2: Batch-Datei wird ohne Wirkung übersprungen

  • Möglicherweise wurde die Sicherheitsrichtlinie deines Systems geändert, insbesondere bei Antivirenprogrammen. Stelle sicher, dass die Ausführung von Batch-Dateien erlaubt ist.

Lösung:

  • Versuche, anstelle der .bat-Datei eine Verknüpfung (.lnk) zur Batch-Datei zu verwenden:
Sub T_1()
    ret = Shell(Environ("Comspec") & " /c c:\temp\Test_dir.bat.lnk", vbHide)
    Debug.Print ret
End Sub

Alternative Methoden

Neben dem Shell-Befehl kannst du auch WScript.Shell verwenden, um eine Batch-Datei auszuführen. Dies kann in bestimmten Situationen zuverlässiger sein:

Sub RunBatchFile()
    Dim wsh As Object
    Set wsh = CreateObject("WScript.Shell")
    wsh.Run "X:\Fibu\Gruppe\Export Datev\Stapelexport.bat", 1, True
End Sub

Mit dieser Methode kannst du den Batch-Befehl ausführen und auf das Ergebnis warten.


Praktische Beispiele

Beispiel 1: Batch-Datei für Exporte

Sub ExportData()
    ' Batch-Datei für Export aufrufen
    Shell "C:\path\to\your\export.bat", vbNormalFocus
End Sub

Beispiel 2: Verwenden von CMD für Batch-Befehle

Sub ExecuteBatchCommand()
    Shell "cmd.exe /c start C:\path\to\your\script.bat", vbNormalFocus
End Sub

Diese Beispiele zeigen, wie du verschiedene Ansätze nutzen kannst, um Batch-Dateien über Excel VBA auszuführen.


Tipps für Profis

  • Testen im Windows Explorer: Führe die Batch-Datei zuerst im Windows Explorer aus, um sicherzustellen, dass sie funktioniert.
  • Debugging: Verwende Debug.Print in deinem VBA-Code, um Rückmeldungen zu erhalten, wenn der Befehl ausgeführt wird.
  • Batch-Befehle Übersicht: Halte eine Übersicht der häufig verwendeten Batch-Befehle bereit, um effizienter arbeiten zu können.

FAQ: Häufige Fragen

1. Kann ich Batch-Dateien von einem Netzwerkpfad aufrufen? Ja, du kannst Batch-Dateien von einem Netzwerkpfad ausführen, solange der Pfad korrekt ist und die Datei Zugriffsrechte hat.

2. Was kann ich tun, wenn die Batch-Datei nicht ausgeführt wird? Überprüfe die Datei und den Pfad, stelle sicher, dass sie existiert und teste die Ausführung im Windows Explorer. Achte auch auf Sicherheitseinstellungen deines Antivirenprogramms.

3. Welche Excel-Version benötige ich? Die beschriebenen Methoden funktionieren in Excel 2010 und späteren Versionen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige