Supportnet Computer
Planet of Tech

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

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

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

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


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

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: