Excel VBA Makro mit Python öffnen

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
lodder
User
Beiträge: 67
Registriert: Montag 11. Januar 2010, 11:03

Weiß jemand wie ich in Python ein Excel VBA Makro öffnen kann. Dieses Makro befindet sich bei mir im Modul 1.
Bis jetzt kann ich nur Werte in Excel reinschreiben, siehe Code:

Code: Alles auswählen

[code]import win32com
import win32com.client
from win32com.client import Dispatch

xlApp = Dispatch("Excel.Application")
xlApp.Workbooks.Open("D:\qwertz.xls")
xlApp.Visible = 1
contents = ('Fin/GHz', 'Fout/GHz', 'Pin/dBm', 'Pout/dBm')
for i, content in enumerate (contents):
    xlApp.ActiveSheet.Cells(1, i+1).Value = content

Fin = [0,0,0]
Fout =[8,9,10]
Pin = [1.0, 2.5,3.4]
Pout =[25.5, 30, 7]

j = 0
n = 2
while j < 3:
    liste = ([Fin[j], Fout[j], Pin[j], Pout[j]])
    for m, content in enumerate (liste):
        xlApp.ActiveSheet.Cells(n, m+1).Value = content

    n += 1
    j += 1


ws = xlApp.Worksheets('Tabelle1')
ws.Makro1()
[/code]

bei den letzten zwei Codezeilen bin ich schon am rumprobieren. Jemand eine Ahnung ?
lodder
User
Beiträge: 67
Registriert: Montag 11. Januar 2010, 11:03

hat keiner eine Antwort dazu ?
Benutzeravatar
b.esser-wisser
User
Beiträge: 272
Registriert: Freitag 20. Februar 2009, 14:21
Wohnort: Bundeshauptstadt B.

google schlägt "xlApp.run('Makro1')" vor ...

disclaimer:
ich hab kein ms-office/teile davon hier, ich hab nicht vor das auszuprobieren, ich hab ja eh keine Ahnung etc. pp.
lodder
User
Beiträge: 67
Registriert: Montag 11. Januar 2010, 11:03

jetzt habe ich nochmals eine Frage. Wie muss ich den Code umschreiben, damit die Werte in ein bestimmtes Tabellenblatt in Excelgeschrieben werden. Z.B. in Tabelle 2

die letzten zwei Zeilen Codes sind schwachsinn
lodder
User
Beiträge: 67
Registriert: Montag 11. Januar 2010, 11:03

ich kann mir meine frage selber beantworten:

Lösung

xlApp.ActiveWorkbook.Sheets("Tabelle2").Cells(1, i+1).Value = content
Antworten