lena123
Goto Top

Konsolenprogramm aus Excel starten

Hallo!

Ich habe folgendes Problem:
Ich habe ein Konsolenprogramm mit verschiedenen Befehlen, der Grundaufbau lautet:

Name.exe --option1 --option2 -outputfile inputfile

Wobei die Anzahl der Optionen beliebig ist.

Bisher habe ich das programm mit einer Batch-Datei gestartet.
Ich möchte das aber nun weiter automatisieren, d.h. ich möchte das Konsolenprogramm aus Excel (VBA) starten. Ist das grundsätzlich möglich?
Ich weiß dass ich die Batch-Datei mit nem shell-Befehl starten kann, dann muss ich aber die Befehle trotzdem jedesmal neu eintippen.

Mein Ziel ist also dass ich entweder in verschiedene Zellen von Excel oder in ein userform die verschiedenen options eintrage und dann damit das Konsolenprogramm starten kann.
Ist das grundsätzlich möglich? Und wenn ja könnt ihr mir ein paar Tipps für einen Ansatz geben?

Vielen Dank

Gruß

Content-Key: 70387

Url: https://administrator.de/contentid/70387

Printed on: April 16, 2024 at 03:04 o'clock

Member: KHP
KHP Oct 08, 2007 at 15:16:29 (UTC)
Goto Top
Hallo,

ist möglich! Ich hab jetzt noch nicht weiter rumprobiert, aber vielleicht hilft folgender Ansatz:
Public Sub shellaufruf(exedat As String)
shellname = Environ("windir") & "\System32\cmd.exe"
a = Shell(shellname & " /K " & exedat, vbNormalFocus)
End Sub
Gruß - Tobias
Member: lena123
lena123 Oct 08, 2007 at 15:58:44 (UTC)
Goto Top
Hallo Tobias,

vielen Dank für die Hilfe,
ist schonmal gut dass es geht;)
Ich bin allerdings noch nicht so bewandert in vba, ist mir klar das mit shellname der Pfad angegeben wird, und die Options werden einfach hintereinander für " /K " eingesetzt? Gibt es eine Möglichkeit die Konsole vor der Durchführung anzuzeigen um es besser nachvollziehen zu können?

gruß
Member: KHP
KHP Oct 29, 2007 at 20:49:37 (UTC)
Goto Top
Hui,

ich bin da eben wieder über Dein Posting gestolpert... hast Du's inzwischen hinbekommen? Habs irgendwie übersehen!
Die Optionen müssen in die Variable "exedat" oder dahinter mit einem weiteren &. Vom Prinzip her rufst Du folgendes Kommando auf:
->shellname & " /K " & exedat
= c:\windows\system32\cmd.exe /K meinprogramm.exe -option1 -option2 -optionX

Der Debugmodus von VBA hilft Dir, um den Inhalt der Variablen vor dem Aufruf zu überprüfen.

Gruß - Tobias

p.s. TIPP: Der Aufruf von *.BAT-Dateien ist selbstverständlich auch so möglich
Member: lena123
lena123 Oct 30, 2007 at 08:16:54 (UTC)
Goto Top
Hallo Tobias,
ja vielen Dank, hab es hinbekommen, mein code sieht jetzt ungefähr so aus:

Set wshell = CreateObject("Wscript.shell")
wshell.Run "cmd /c " & Chr(34) & test & Chr(34), vbMinimizedNoFocus, True


In test stehen dann meine Optionen, z.B. " --option1 --option2 " usw.
Das True am Ende bewirkt, dass ein Durchgang erst gestartet wird, wenn der letzte beendet wurde.

Viele Grüße lena