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

Forumthread: externes Programm starten

externes Programm starten
09.01.2006 10:49:55
Ludwig
Hallo
Ich möchte aus Excel heraus ein Programm starten (FEM-Programm), dieses dann wieder beenden und die Ergebnisse (Textdatei) in Excel einlesen und den Variablen zuordnen!
Kann mir jemand den Befehlscode dafür nennen!
Danke im voraus!
Gruß Ludwig
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: externes Programm starten
09.01.2006 12:14:07
Nico
Hallo Ludwig,
um ein externes Programm zu starten, kannst du folgenden Code abändern.

Sub MSAccess()
Dim E
E = Shell("C:\Programme\MSOffice.97\Office\MSACCESS.EXE", 3)
End Sub

Das Einlesen der Daten würde ich erst aufzeichnen und dann ggfls den Code anpassen.
Gruß
Nico
Anzeige
AW: externes Programm starten
09.01.2006 16:08:59
Ludwig
Hallo Nico
Danke für die schnelle Antwort.
Dieses Programm starte ich üblicherweise über das DOS Eingabefenster, bzw.
"Start -- Ausführen -- C:USR\TW2.EXE"
Mit dem Shell-Befehl läßt sich das programm leider nicht starten!
Hast Du eine Idee wie ich diese "Start -- Ausführen -- C:USR\TW2.EXE" programmieren kann?
Vielen Dank im voraus.
Ludwig
Anzeige
AW: externes Programm starten
09.01.2006 16:11:54
Ludwig
Hallo Nico
Danke für die schnelle Antwort.
Dieses Programm starte ich üblicherweise über das DOS Eingabefenster, bzw.
"Start -- Ausführen -- C:USR\TW2.EXE"
Mit dem Shell-Befehl läßt sich das programm leider nicht starten!
Hast Du eine Idee wie ich diese "Start -- Ausführen -- C:USR\TW2.EXE" programmieren kann?
Vielen Dank im voraus.
Ludwig
Anzeige
AW: externes Programm starten
09.01.2006 16:33:56
Ramses
Hallo
"...Mit dem Shell-Befehl läßt sich das programm leider nicht starten!..."
Jedes Programm lässt sich mit dem Shell-Befehl starten ;-)
x = Shell("cmd.exe /k C:\USR\TW2.EXE")
Gruss Rainer
AW: externes Programm starten
09.01.2006 17:23:20
Ludwig
Hallo Rainer
Sorry, aber zwischenzeitlich habe ich gelernt, dass mein Programm TW2.EXE (Turbopascal 1992) nur in der Dosbox läuft. Mein Programmaufruf lautet deswegen jetzt:
E = Shell("cmd.exe /C C:\USR\DOSBox-0.63\DOSBOX.EXE -conf")
In der "-conf" Datei steht u.a. der Pfad und das auszuführende Programm TW2.EXE
Bei diesem Aufruf aus Excel heraus funktioniert läuft TW2.EXE aber nicht!
Gehe ich den Weg über Start -- "c:\usr\DOSBox-0.63\dosbox.exe" so läuft mein Programm TW2.EXE. Daher war die Vermutung ich muß über cmd gehen.
Sorry, aber das Problem scheint doch etwas komplizierter als ich dachte!
Gruß Ludwig
Anzeige
Du musst den Parameter "/k" übergeben...
09.01.2006 18:35:13
Ramses
Hallo
und nicht "/c".
Mit "/c" wird die DOS Box wieder geschlossen, bei "/k" sollte sie offen bleiben.
Gruss Rainer
AW: Du musst den Parameter "/k" übergeben...
10.01.2006 07:58:01
Ludwig
Hallo Rainer
...leider ist es dieses auch nicht. "/k" hatte ich ebenfalls schon ausprobiert.
Irgend ein Unterschied scheint zwischen:
- Start aus Browser oder DOS-Start (läuft) und
- Aufruf aus EXCEL (läuft nicht richtig) zu einem Fehlstart zu führen.
Gruß Ludwig
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Externes Programm aus Excel starten


Schritt-für-Schritt-Anleitung

Um ein externes Programm über Excel zu starten, kannst du VBA (Visual Basic for Applications) 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. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen und wähle Modul.
  3. Gib den folgenden Code ein:

    Sub externesProgrammStarten()
       Dim E
       E = Shell("cmd.exe /k C:\USR\TW2.EXE", vbNormalFocus)
    End Sub
  4. Ändere den Pfad zu deinem Programm, falls notwendig.

  5. Starte das Makro durch Drücken von F5 oder durch Ausführen im Excel-Interface.

Dieser VBA-Code verwendet den Shell-Befehl, um das gewünschte Programm zu starten. Achte darauf, dass der Pfad und der Programmname korrekt sind.


Häufige Fehler und Lösungen

  • Programm startet nicht:

    • Überprüfe den Pfad des Programms in deinem Shell-Befehl. Stelle sicher, dass die Datei existiert und der Pfad korrekt eingegeben ist.
  • DOSBox läuft nicht:

    • Wenn dein Programm in einer DOSBox laufen muss, stelle sicher, dass du die richtige Konfiguration in der -conf-Datei angegeben hast.
  • Fehlermeldung bei der Ausführung:

    • Verwende den Parameter /k anstelle von /c im cmd, um sicherzustellen, dass die DOSBox offen bleibt.

Alternative Methoden

Wenn der Shell-Befehl nicht funktioniert, gibt es alternative Ansätze:

  1. Das Programm direkt über die Windows-Ausführen-Funktion starten:

    E = Shell("C:\USR\DOSBox-0.63\DOSBOX.EXE -conf C:\Pfad\zu\deiner\datei.conf", vbNormalFocus)
  2. Verwende WScript.Shell:

    Dim WshShell As Object
    Set WshShell = CreateObject("WScript.Shell")
    WshShell.Run "C:\USR\TW2.EXE"

Praktische Beispiele

Um ein externes Programm mit Parametern zu starten, kannst du den folgenden Code verwenden:

Sub programmMitParameternStarten()
    Dim E
    E = Shell("cmd.exe /k C:\USR\DOSBox-0.63\DOSBOX.EXE -conf C:\Pfad\zu\deiner\datei.conf", vbNormalFocus)
End Sub

Hierbei wird das Programm DOSBox mit einer Konfigurationsdatei gestartet, die die zu ladende EXE-Datei enthält.


Tipps für Profis

  • Parameter übergeben: Wenn du Parameter an das auszuführende Programm übergeben möchtest, kannst du das direkt im Shell-Befehl tun. Zum Beispiel:

    E = Shell("C:\USR\TW2.EXE -parameter", vbNormalFocus)
  • Fehlerprotokollierung: Füge eine Fehlerbehandlung in dein Makro ein, um Probleme schneller zu identifizieren:

    On Error Resume Next
    E = Shell("C:\USR\TW2.EXE", vbNormalFocus)
    If Err.Number <> 0 Then
      MsgBox "Fehler: " & Err.Description
    End If

FAQ: Häufige Fragen

1. Wie kann ich ein Java-Programm aus Excel starten?
Du kannst ein Java-Programm ähnlich starten, indem du den Java-Interpreter im Shell-Befehl verwendest:

E = Shell("java -jar C:\Pfad\zu\deinem\programm.jar", vbNormalFocus)

2. Was ist der Unterschied zwischen /k und /c in cmd?
Der Parameter /k lässt die Eingabeaufforderung offen, während /c die Eingabeaufforderung nach Ausführung des Befehls schließt.

3. Wie kann ich mehrere Programme gleichzeitig starten?
Du kannst mehrere Shell-Befehle hintereinander ausführen oder sie in einer Schleife abarbeiten.

4. Funktioniert dieser Ansatz in allen Excel-Versionen?
Ja, der Einsatz von VBA zur Ausführung von externen Programmen funktioniert in den meisten modernen Excel-Versionen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige