Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1752to1756
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Batch-Datei per Shell aufrufen

Batch-Datei per Shell aufrufen
14.04.2020 11:44:50
Peter
Hallo zusammen,
ich nutze ein Tool (pdftocairo.exe) um PDF-Dateien ins SVG-Format zu konvertieren.
Aus Excel heraus erstelle ich ein PDF und will dieses nun VBA-automatisiert konvertieren. Und genau daran scheitere ich :-(
Aktuell habe ich eine Batch-Datei erstellt. Starte ich diese durch Doppelklick im Explorer, dann wird die Konvertierung durchgeführt.
Rufe ich die Batch-Datei jedoch aus VBA heraus auf ... so passiert nix :-(
Mein Aufruf lautet:
Sub c2()
Shell ("C:\Users\ps\Desktop\test\convert.bat")
End Sub
Habt Ihr eine Idee wo ich da einen Fehler mache?
Danke für Eure Hilfe und sonnige und gesunde Grüße
Peter

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Batch-Datei per Shell aufrufen
14.04.2020 11:51:32
KrisM
Wird die Datei denn aufgerufen?
Du kannst in die Batch den Befehl "pause" verwenden, falls sich diese zu schnell schließt. so siehst du evtl. Fehlermeldungen.
Ich geh davon aus, dass die Batchdatei die Pfade nicht ermittelt, bzw. durch den Aufruf aus Excel das schief geht.
AW: Batch-Datei per Shell aufrufen
14.04.2020 15:13:29
Peter
Hi KrisM,
ich habe jetzt mal den Pause-Befehl vor dem eigentlichen Aufruf eingebaut.
Beim Start über den Explorer bleibt er stehen und wartet auf einen Tastendruck. Danach führt er die Konvertierung aus.
Beim Aufruf aus VBA bleibt er auch stehen und wartet auf einen Tastendruck. Danach mach er ... nix :-(
Hast Du vielleicht noch eine Idee?
Gruß
Peter
Anzeige
AW: Batch-Datei per Shell aufrufen
14.04.2020 15:25:20
volti
Hallo Peter,
vielleicht solltest Du den Batchtext hier mal einstellen, ggf. via Textdatei. Damit man mal was sieht und nicht nur raten muss.
Viele Grüße
Karl-Heinz
AW: Batch-Datei per Shell aufrufen
14.04.2020 15:48:07
Peter
Hallo Karl-Heinz,
sorry - hatte gedacht, dass ich das schon im ersten Post drin hatte ... dort stand jedoch nur der VBA-Code :-(
Hier der Inhalt der Batch-Datei:
C:\Users\ps\Desktop\test\pdftocairo.exe -svg "bProto_12.pdf" "bProto_12.svg"
pdftocairo ist das Tool zum Umwandeln einer PDF-Datei ins SVG-Format.
Gruß
Peter
AW: Batch-Datei per Shell aufrufen
14.04.2020 16:04:48
volti
Hallo Peter,
sieht mir irgendwie plausibel aus. Aber vielleicht zwei Gedanken dazu von mir:
Was passiert, wenn Du die "="-Zeichen weglässt? Die Dateinamen haben ja keine Leerzeichen, da müsste es auch damit gehen.
Warum ruft Du es nicht direkt per VBA auf? Da steht doch eh nur ein Term drin.
Shell "C:\Users\ps\Desktop\test\pdftocairo.exe -svg bProto_12.pdf bProto_12.svg", , vbNormalFocus

viele Grüße
Karl-Heinz
Anzeige
AW: Batch-Datei per Shell aufrufen
14.04.2020 16:14:25
Peter
Hallo Karl-Heinz,
das war mein erster Versuch ... der Batch-Ansatz war der zweite Versuch.
Ich bin jetzt aber einen Schritt weiter gekommen.
Beim Aufruf über VBA erhalten ich die folgende Fehlermeldung in der Kommandozeile:
I/O Error: Couldn't open file 'bProto_12.pdf': No error.
Error opening PDF File

Wie gesagt, beim direkten Batch-Start aus dem Explorer läuft es perfekt ...
Gruß
Peter
AW: link
14.04.2020 11:54:07
Fennek
Hallo,
falls alles stimmt und die batch nur wegen der Sicherheitseinstellungen nicht ausgeführt wird, erstelle eine link-Datei (*.lnk) der *.bat und rufe diese mit VBA auf.
mfg
Anzeige
AW: link
14.04.2020 15:53:52
Peter
Hi Fennek,
danke für die Idee.
Ich habe jetzt eine Verknüpfung zu meiner convert.bat erstellt (convert.lnk).
wenn ich diese im Explorer aufrufe klappt auch wieder alles.
Mein Aufruf aus VBA geht jedoch schief:
Sub c2()
Shell ("C:\Users\ps\Desktop\test\convert.lnk")
End Sub
Da erhalte ich die Meldung: Ungültiger Prozeduraufruf oder ungültiges Argument ... ?
Ist mein Aufruf falsch?
Gruß
Peter
AW: Beispiel-Code
14.04.2020 16:21:23
Fennek
Hallo,
versuche es einmal so:

With CreateObject("WScript.Shell")
.Run ("c:\temp\Test_dir.bat.lnk")
End With
mfg
Anzeige
AW: Beispiel-Code
14.04.2020 16:31:14
Peter
Nochmal hallo ...
ich hab' ja keine Ahnung was hier passiert ... aber mit dem Aufruf der *.lnk klappts mit Deiner Methode ...
Vielen vielen Dank für Deine Hilfe und das Lösen meines Problems !!
Sonnige Grüße
Peter
AW: Hacker-Land
14.04.2020 16:42:13
Fennek
Zu jedem Virus etc gehört es ein Programm zu starten. Da es früher meistens mit der Methode, die Du versucht hast, gemacht wurde, hat M$ das blockiert.
Der kleine Umweg ist aber seit Jahren bekannt.
AW: Hacker-Land
14.04.2020 16:48:41
Peter
Und schon wieder eine ganze Menge gelernt :-)
Merci und viele Grüße

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige