Supportnet / Forum / Datenbanken
Excel-Macro aus Access starten - aber wie?
Frage
hilfeeee!
ich möchte durch einen klick auf ein button in einer access2000-anwendung ein macro ausführen, dass eine datei aus einen ordner holt, in excel konvertiert, filtert (relativ komplex aber durch excel-macro kein problem) und als *.txt-datei in einen anderen ordner schreibt.
frage:wie kann ich das excel.sheet, in dem sich das macro befindet über access öffnen und ohne ".. wollen sie makros aktivieren.." öffnen bzw. "wollen sie wirklich speichern...blabla" abfrage wieder schließen bzw. excel beenden?
kann das jemand einen access-anfänger erklären?
oder geht es vielleicht noch einfacher?
Antwort 1 von Guenter
Hallo dr.loki,
diese Funktion habe ich bei Microsoft gefunden:
Function OleAutoExcel ()
Dim ExcelObj As Object
Set ExcelObj = CreateObject("EXCEL.APPLICATION")
ExcelObj.Workbooks.Open ("Pfad- und Filename")
ExcelObj.Run ("Filename!Makroname")
ExcelObj.ActiveWorkbook.[Save]
ExcelObj.ActiveWorkbook.[Close]
End Function
Das funktioniert bei mir, Excel wird gestartet und das Makro läuft. Eine Sicherheitsabfrage beim Starten des Makro erfolgt nicht. Die Sicherheiteinstellungen habe ich auf mittel.
Allerdings steigt es dann aus bei
Save oder Close.
Vielleicht hat da noch jemand eine Idee oder es liegt an meinem Makro?
Hier noch die Microsoft Seite:
http://www.microsoft.com/intlkb/germany/support/kb/D29/D29015.htm
Gruß
Günter
diese Funktion habe ich bei Microsoft gefunden:
Function OleAutoExcel ()
Dim ExcelObj As Object
Set ExcelObj = CreateObject("EXCEL.APPLICATION")
ExcelObj.Workbooks.Open ("Pfad- und Filename")
ExcelObj.Run ("Filename!Makroname")
ExcelObj.ActiveWorkbook.[Save]
ExcelObj.ActiveWorkbook.[Close]
End Function
Das funktioniert bei mir, Excel wird gestartet und das Makro läuft. Eine Sicherheitsabfrage beim Starten des Makro erfolgt nicht. Die Sicherheiteinstellungen habe ich auf mittel.
Allerdings steigt es dann aus bei
Save oder Close.
Vielleicht hat da noch jemand eine Idee oder es liegt an meinem Makro?
Hier noch die Microsoft Seite:
http://www.microsoft.com/intlkb/germany/support/kb/D29/D29015.htm
Gruß
Günter
Antwort 2 von dr.loki
@ günter
danke, nicht schlecht! ich habe es etwas erweitert, versuchs mal! das aufhängen kann ich hiermit umgehen (klappt zumindest bei mir). auch der unsichtbar im hintergrund ressourcen klauende prozess wird nach ausführung gekillt. allerdings werde ich die abfrage zum speichern nicht los, das nervt! vielleicht fällt ja noch jemanden was dazu ein.
gruß marc
Function OleAutoExcel()
Dim ExcelObj As Object
Set ExcelObj = CreateObject("EXCEL.APPLICATION")
ExcelObj.Workbooks.Open ("pfad\filename")
ExcelObj.Run ("filename!Makroname")
ExcelObj.Quit
Set ExcelObj = Nothing
End Function
danke, nicht schlecht! ich habe es etwas erweitert, versuchs mal! das aufhängen kann ich hiermit umgehen (klappt zumindest bei mir). auch der unsichtbar im hintergrund ressourcen klauende prozess wird nach ausführung gekillt. allerdings werde ich die abfrage zum speichern nicht los, das nervt! vielleicht fällt ja noch jemanden was dazu ein.
gruß marc
Function OleAutoExcel()
Dim ExcelObj As Object
Set ExcelObj = CreateObject("EXCEL.APPLICATION")
ExcelObj.Workbooks.Open ("pfad\filename")
ExcelObj.Run ("filename!Makroname")
ExcelObj.Quit
Set ExcelObj = Nothing
End Function
Antwort 3 von Guenter
Hallo Marc,
Deine Version ist schon besser, in der Tat.
Wenn Dein Excel-Makro in Excel ausgeführt wird, kommt dann auch die Speicherabfrage?
Dann wäre es ja ein Problem des Excel-Makros??
Gruß
Günter
Deine Version ist schon besser, in der Tat.
Wenn Dein Excel-Makro in Excel ausgeführt wird, kommt dann auch die Speicherabfrage?
Dann wäre es ja ein Problem des Excel-Makros??
Gruß
Günter
Antwort 4 von Teddy7
Hallo Günter !
Hast Du Deine Version mal ohne die eckigen Klammern versucht ?
ExcelObj.ActiveWorkbook.Save
und für´s schließen:
ExcelObj.Workbooks.Close
Gruß
Teddy
Hast Du Deine Version mal ohne die eckigen Klammern versucht ?
ExcelObj.ActiveWorkbook.Save
und für´s schließen:
ExcelObj.Workbooks.Close
Gruß
Teddy
Antwort 5 von Guenter
Hallo Teddy,
danke für Deinen Hinweis. Ich habe mit der Funktion von Marc, Antwort 2, keine Probleme. Das läuft bei mir.
Außerdem hatte ich das von mir gefundene Makro nur mal probeweise ausgeführt! Probleme mit der Fragestellung: Excel-Makros aus Access ausführen habe ich nicht.
Nochmals Danke.
@marc: Was die Speicherabfrage angeht, so scheint es ein Excel-Problem zu sein. Wenn ich in meinem Excel-Makro den ActiveWorkbook.SaveAs Befehl ausführe, kommt keine Abfrage zum Speichern.
Gruß
Günter
danke für Deinen Hinweis. Ich habe mit der Funktion von Marc, Antwort 2, keine Probleme. Das läuft bei mir.
Außerdem hatte ich das von mir gefundene Makro nur mal probeweise ausgeführt! Probleme mit der Fragestellung: Excel-Makros aus Access ausführen habe ich nicht.
Nochmals Danke.
@marc: Was die Speicherabfrage angeht, so scheint es ein Excel-Problem zu sein. Wenn ich in meinem Excel-Makro den ActiveWorkbook.SaveAs Befehl ausführe, kommt keine Abfrage zum Speichern.
Gruß
Günter

