Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Über Excel Makro CMD ausführen

Forumthread: Über Excel Makro CMD ausführen

Über Excel Makro CMD ausführen
08.06.2016 08:40:37
Stiegler
Hallo Leute,
ich habe derzeit das Problem, dass ich ich pdf-files in txt-files über ein Makro konvertieren will. Ich habe mir das Programm pdf2txt geholt und möchte dieses nun per cmd ansteuern, welches dann die pdf in eine txt konvertiert.
Leider habe ich kaum cmd kenntnisse und tue mir hier etwas hart:
Shell "cmd /k C:\Users\...\pdftotext.exe & PROTOKOLL1.pdf"
Der erste teil öffnet zwar cmd und geht den richtigen Pfad, allerdings wird das zu konvertierende Protokoll nicht benutzt und es kommt eine Fehlermeldung : "Befehl Protokoll1.pdf wurde nicht gefunden"
Wie würde hier der richtige Code aussehen?
Ist es denn möglich das PDF über ne variable zu bestimmen und somit über ne Schleife mehrere PDFs nacheinander zu konvertieren ?
Vielen Dank schonmal im Vorraus !!!!

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Über Excel Makro CMD ausführen
08.06.2016 08:53:14
Fennek
Hallo,
wieder mal eine interessante Frage.
Vielleicht hilft das Beispiel, den DOS-DIR-Befehl aufzurufen:
ar = Split(CreateObject("wscript.shell").exec("cmd /c Dir " & sPath & sFile & " /o-d").stdout.readall, vbCrLf)
ABER: warum nicht eine andere Konstruktion, z.B. ein *.bat file? Die Zeilen kann man in Excel generieren, als *.bat abspeichern und dann im Explorer mit einem Doppelklick starten (nur unter Windows)
Für weiter Unterstützung wäre es gut zu wissen, wie die Dateien für die Umwandlung ausgewählt werden (vba unterstützt das recht gut) und wie die Befehlszeile im cmd - Fenster ist.
mfg

Anzeige
AW: Über Excel Makro CMD ausführen
08.06.2016 10:11:06
Stiegler
Hallo Fennek,
ich bin leider kein Profi und der DOS-DIR-Befehl und bat sagt mir nichts.
Die pdftotxt.exe ist im gleichen ordner wie die zu konvertierenden pdfs.
Ich habe mir gedacht, erst alle pdf namen einzulesen und in eine spalte bei exzel einzuschreiben (klappt auch) und dann über eine schleife jeden namen zu nehmen und damit als pfad in die cmd rein, sodass es dann konvertiert wird.
In der cmd gebe ich folgendes ein um ein pdf zu konvertieren: (bei cmd start : "C:\Windows")
cd C:\Users....\PDF (Der Ornder in dem alle pdfs liegen heißt PDF)
pdftotext Protokoll1.pdf

Anzeige
AW: Über Excel Makro CMD ausführen
08.06.2016 08:58:17
UweD
Hallo
ich habe das Programm natürlich nicht.
Habe es mal mit notepad versucht.
bei mir klappt das so..
Shell "cmd /k C:\windows\notepad.exe c:\temp\Test.txt"

Ich denke, bei dir fehlt das Leerzeichen zwischen .exe und Protokoll1 und evtl. noch der Pfad von Protokoll1.pdf
LG UweD

Anzeige
AW: Über Excel Makro CMD ausführen
08.06.2016 10:17:55
Stiegler
Hallo UweD
Ich habe es so gemacht wie du, allerdings sieht es bei mir so aus
Shell "cmd /k C:....PDF\pdftotext.exe C:.....PDF\protokoll1.pdf"
es kommt zwar eine Fehlermeldung, aber es wird konvertiert !!!!
Du hast mir echt geholfen und mich vor Wahnsinn bewahrt. DANKE DIR !!!!
;
Anzeige
Anzeige

Infobox / Tutorial

Excel Makro: CMD Befehle Ausführen


Schritt-für-Schritt-Anleitung

Um mit Excel ein CMD-Befehl auszuführen, kannst du die Shell-Funktion in VBA verwenden. Hier sind die Schritte:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11 in Excel.
  2. Erstelle ein neues Modul:

    • Rechtsklicke auf "VBAProject (deinWorkbookName)" und wähle "Einfügen" > "Modul".
  3. Füge den VBA-Code ein:

    • Schreibe den folgenden Code in das Modul:
    Sub CmdBefehlAusfuehren()
       Dim cmdBefehl As String
       cmdBefehl = "C:\Users\...\pdftotext.exe C:\Users\...\PROTOKOLL1.pdf"
       Shell "cmd /k " & cmdBefehl
    End Sub
    • Achte darauf, die Pfade zu deiner pdftotext.exe und der PDF-Datei anzupassen.
  4. Führe das Makro aus:

    • Drücke F5, um das Makro auszuführen. CMD sollte geöffnet werden und die Konvertierung starten.

Häufige Fehler und Lösungen

Fehler: "Befehl Protokoll1.pdf wurde nicht gefunden"
Lösung: Stelle sicher, dass zwischen dem Pfad zu pdftotext.exe und dem Namen der PDF-Datei ein Leerzeichen ist.

Fehler: CMD öffnet sich, aber nichts passiert
Lösung: Überprüfe die Pfade und stelle sicher, dass die Datei existiert. Achte auf korrekte Schreibweise.


Alternative Methoden

Anstelle von CMD-Befehlen kannst du auch ein .bat-Datei erstellen, die die Befehle enthält. So kannst du mehrere PDF-Dateien in einem Durchgang konvertieren:

  1. Erstelle eine Textdatei und speichere sie als .bat.

  2. Füge deine Befehle in die Datei ein, z.B.:

    @echo off
    pdftotext.exe C:\Users\...\PROTOKOLL1.pdf
    pdftotext.exe C:\Users\...\PROTOKOLL2.pdf
  3. Starte die Batch-Datei über Excel mit Shell.


Praktische Beispiele

Hier ist ein Beispiel, wie du mehrere PDFs mit einer Schleife in Excel konvertieren kannst:

Sub MehrerePdfsKonvertieren()
    Dim pdfDatei As String
    Dim pdfPfad As String
    Dim i As Integer

    pdfPfad = "C:\Users\...\PDF\"

    ' Angenommen, die PDF-Dateinamen sind in A1:A10
    For i = 1 To 10
        pdfDatei = Cells(i, 1).Value
        Shell "cmd /k " & pdfPfad & "pdftotext.exe " & pdfPfad & pdfDatei
    Next i
End Sub

Tipps für Profis

  • Verwende cmd /c statt cmd /k, um das CMD-Fenster nach der Ausführung zu schließen.
  • Experimentiere mit weiteren cmd-Befehlen, um die Funktionalität zu erweitern.
  • Halte deine Pfade und Dateinamen in variablen, um deinen Code flexibler zu gestalten.

FAQ: Häufige Fragen

1. Wie kann ich Excel CMD Befehle ausführen?
Du kannst dies mit der Shell-Funktion in VBA tun, um verschiedene CMD-Befehle auszuführen.

2. Was muss ich beachten, wenn ich CMD-Befehle über Excel ausführe?
Achte darauf, dass die Pfade korrekt sind und dass die Dateien existieren. Verwende immer ein Leerzeichen zwischen den Befehlen.

3. Kann ich mehrere Dateien gleichzeitig konvertieren?
Ja, du kannst eine Schleife in VBA verwenden, um mehrere PDFs nacheinander zu konvertieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige