Python script mit Excel VBA ausführen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
AndiFeiler
User
Beiträge: 3
Registriert: Freitag 27. Mai 2016, 13:42

Hallo zusammen,
bin neu und habe auch das Forum nach diesem Thema durchsucht..bin aber nicht wirklich auf meine Anwednung fündig geworden.

Mit der Shell führe ich heute folgenden befehl aus:

D:\pythonTry\python modbus_csv_V2.py TestRegister10.txt
--> das Script liest hier die TestRegister.txt ein.

ich möchte das mit VBA von Excel her ausführen:
Hier mache ich folgendes:

[codebox=vb file=Unbenannt.vb]Private Sub CommandButton1_Click()
Dim pyPrgm As String, pyScript As String
pyPrgm = "C:\Python27\python.exe "
pyScript = "D:\pythonTry\modbus_csv_V2.py TestRegister10.txt"
Call Shell(pyPrgm & pyScript, vbMaximizedFocus)
End Sub[/code]

Hier tut sich gar nichts, script direkt aus der Shell heraus funktioniert. aber mit dem VBA script nicht.

weiss jemand hier weiter?
danke!!
Zuletzt geändert von Anonymous am Freitag 27. Mai 2016, 14:26, insgesamt 1-mal geändert.
Grund: Quelltext in Codebox-Tags gesetzt.
BlackJack

@AndiFeiler: Wie stellst Du fest das es nicht läuft? Was ist der Rückgabewert der VBA `Shell`-Funktion?
Benutzeravatar
pixewakb
User
Beiträge: 1408
Registriert: Sonntag 24. April 2011, 19:43

Tipp: Falsches Forum, d. h. schau mal gezielt in VBA-/Excel-Foren. Eine Freundin von mir macht nur in VBA und möglicherweise gibt es da eine Möglichkeit Python von Excel aus aufzurufen.

Wenn Du mit Excel interagieren willst, geht das über folgendes Modul (extern):

https://openpyxl.readthedocs.io/en/default/
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@AndiFeiler: dass gar nichts passiert, heißt schonmal, dass der Aufruf von Python funktioniert, da sonst Shell eine Exception werfen würde. Das Problem ist aber, dass die Ausgabe auf die Console nirgends auftaucht, Du also eine Python-Fehlermeldung nicht siehst. Was ist denn die erwartete Reaktion des Python-Skripts? Wo liegt die Datei TestRegister10.txt? Keine Ahnung auf was Excel den aktuellen Pfad setzt. Da solltest Du sicherheitshalber mit absoluten Pfadangaben arbeiten.
Ansonsten gibt es noch hier angeblich eine Möglichkeit, die Ausgabe von Python nach Excel zu bekommen.
AndiFeiler
User
Beiträge: 3
Registriert: Freitag 27. Mai 2016, 13:42

Hi zusammen,

hat funktioniert: es war das Leerzeichen, danke:

[codebox=vb file=Unbenannt.vb]Private Sub CommandButton1_Click()
Dim pyPrgm As String, pyScript As String
Dim args As String
pyPrgm = "C:\Python27\python.exe "
pyScript = "D:\pythonTry\modbus_csv_V2.py"
args = "D:\pythonTry\TestRegister12.txt"
Call Shell(pyPrgm & pyScript & " " & args, vbMaximizedFocus)
End Sub[/code]
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Gehört eigentlich ins Forum "Python mit anderen Sprachen verwenden".
Antworten