Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: cmd befehle mit vba ausführen

cmd befehle mit vba ausführen
19.01.2006 09:24:40
derb
guten tag
mit Shell("cmd /c befehl")
kann ich ja ein cmd befehl ausführen.
jedoch funktioniert das bei mir nicht richtig
ic habe bisher nur geschafft, das bei
Shell ("cmd /C pause")
der "drücken sie eine taste..." screen kommt,
alles danach folgende, wie z.B. ein net send
Shell ("cmd /C net send localhost blabla")
wird ignoriert..
was mach ich falsch?
hier mein beispiel
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: cmd befehle mit vba ausführen
19.01.2006 10:07:26
Reinhard
Hi derb,
Option Explicit

Sub tt()
Dim x
Close
Open "c:\test\kurz.bat" For Output As #1
Print #1, "@echo on"
Print #1, "echo tesst"
Print #1, "Pause"
Close
x = Shell("c:\test\kurz.bat", vbMaximizedFocus)
End Sub

Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen.
Anzeige
AW: cmd befehle mit vba ausführen
19.01.2006 10:11:21
derb
das wär natürlich auch ne möglichkeit, aber gibt es keine lösung bei der man alles im code belasssen kann und es nciht auslagern muss und dann die bat starten?
AW: cmd befehle mit vba ausführen
20.01.2006 01:17:43
Reinhard
Hi derb,
sorry, bin von win98, da hätte ich dir mit command mehr helfen können, zu winxp mit cmd geschlittert. Habe heute erstmals cmd /? ausprobiert...
Probier mal:

Option Explicit
Sub tt()
Dim x
x = Shell("cmd /k @echo on && echo test && pause")
End Sub

Übrigens, zur Info, dein Bild in der Anfangsfrage ist nicht sichtbar weil da ein "%" nach dem jpg dranklebt und kein Leerzeichen.
Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen.
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

CMD-Befehle mit VBA ausführen


Schritt-für-Schritt-Anleitung

Um CMD-Befehle mit VBA auszuführen, kannst Du die Shell-Funktion verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Erstelle ein neues Modul: Klicke auf Einfügen > Modul.

  3. Füge den folgenden Code in das Modul ein:

    Sub cmdAusführen()
        Dim befehl As String
        befehl = "cmd /c echo Hallo Welt"
        Shell befehl, vbNormalFocus
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus, um den CMD-Befehl auszuführen.


Häufige Fehler und Lösungen

Hier sind einige häufige Fehler, die beim Ausführen von CMD-Befehlen in VBA auftreten können, sowie deren Lösungen:

  • Problem: CMD-Befehl wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass der Befehl korrekt formatiert ist. Vergiss nicht, Anführungszeichen um den gesamten Befehl zu setzen, wenn Leerzeichen vorhanden sind.
  • Problem: Das CMD-Fenster öffnet sich, schließt sich aber sofort.

    • Lösung: Verwende cmd /k anstelle von cmd /c, um das Fenster offen zu halten.
  • Problem: Netzwerkanforderungen wie net send funktionieren nicht.

    • Lösung: Überprüfe, ob die notwendigen Berechtigungen für den CMD-Befehl vorhanden sind und dass der Befehl auf Deinem System unterstützt wird.

Alternative Methoden

Es gibt auch alternative Methoden, um CMD-Befehle in VBA auszuführen:

  • Batch-Dateien: Du kannst eine Batch-Datei erstellen und diese mit VBA ausführen. Beispiel:

    Sub BatchAusführen()
        Dim x
        x = Shell("c:\deinPfad\deinBefehl.bat", vbNormalFocus)
    End Sub
  • WScript.Shell: Eine weitere Möglichkeit ist die Verwendung von WScript.Shell, um mehr Kontrolle über die Ausführung zu haben:

    Sub WScriptShellCmd()
        Dim shell
        Set shell = CreateObject("WScript.Shell")
        shell.Run "cmd /c deinBefehl"
    End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du CMD-Befehle in Excel VBA ausführen kannst:

  1. Einfache Ausgabe:

    Sub EinfacheAusgabe()
        Shell "cmd /k echo Dies ist ein Test", vbNormalFocus
    End Sub
  2. Netzwerkbefehl senden:

    Sub NetzSend()
        Shell "cmd /c net send localhost 'Hallo'", vbNormalFocus
    End Sub
  3. Einen Batch-Befehl ausführen:

    Sub BatchBefehl()
        Dim x
        x = Shell("C:\test\kurz.bat", vbMaximizedFocus)
    End Sub

Tipps für Profis

  • Verwende @echo on: Durch das Hinzufügen von @echo on am Anfang deines CMD-Befehls kannst Du die Ausgaben im CMD-Fenster sehen.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in Deinem VBA-Code, um mögliche Fehlerquellen zu identifizieren.

  • Verwende cmd /k: Wenn Du die Ausgaben im CMD-Fenster sehen möchtest und das Fenster offen bleiben soll, benutze cmd /k.


FAQ: Häufige Fragen

1. Wie kann ich mehrere CMD-Befehle ausführen? Du kannst mehrere Befehle mit && verketten:

Shell "cmd /k befehl1 && befehl2", vbNormalFocus

2. Was ist der Unterschied zwischen cmd /c und cmd /k? cmd /c führt den Befehl aus und schließt das Fenster danach, während cmd /k das Fenster offen hält, sodass Du die Ergebnisse sehen kannst.

3. Kann ich auch VB.NET verwenden, um CMD-Befehle auszuführen? Ja, Du kannst in VB.NET CMD-Befehle ausführen, indem Du die Process.Start-Methode verwendest, um die Eingabeaufforderung zu öffnen und Befehle auszuführen.

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