Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Modul von Excel in Access verwenden

0 views
Skip to first unread message

Christian Kaltenbrunner

unread,
Mar 31, 2005, 5:45:53 AM3/31/05
to
Hallo NG,

ich habe mir in Excel 2003 ein Makro erstellt und möchte dieses Modul nach
dem Export von einer Excel - Tabelle mit Access 2003 ausführen.
Wie geht das?

Vielen Dank für Eure Hilfe
Christian


stefan hoffmann

unread,
Mar 31, 2005, 5:55:18 AM3/31/05
to
tach Christian,

Christian Kaltenbrunner schrieb:


> ich habe mir in Excel 2003 ein Makro erstellt und möchte dieses Modul nach
> dem Export von einer Excel - Tabelle mit Access 2003 ausführen.
> Wie geht das?

F2 liefert

Function ExecuteExcel4Macro(String As String)
Element von Excel.Application

Schon probiert?

mfG
--> stefan <--

Christian Kaltenbrunner

unread,
Mar 31, 2005, 6:11:12 AM3/31/05
to
Hallo Stefan,

"stefan hoffmann" <stefan....@explido.de> schrieb im Newsbeitrag
news:uWrphAe...@TK2MSFTNGP15.phx.gbl...

Es wird jedesmal von Access die Excel - Tabelle neu erstellt. Nach der
Erstellung möchte ich die Formatierungen von Access heraus in Excel
durchführen. Das Modul nach Access kopieren.

Gruß
Christian


Michael Kocher

unread,
Mar 31, 2005, 6:47:09 AM3/31/05
to
Hi Christian

Wenn die Tabelle immer wieder von neuem erstellt wird, nimmst du den Code am
besten ins Access rüber und sprichst Excel via Objekt an. Kennst Du Dich im
VBA Codieren aus?

Gruss
Michi


stefan hoffmann

unread,
Mar 31, 2005, 7:01:19 AM3/31/05
to
tach Christian,

Christian Kaltenbrunner schrieb:
>>>ich habe mir in Excel 2003 ein Makro erstellt und möchte dieses Modul
>>>nach dem Export von einer Excel - Tabelle mit Access 2003 ausführen.
>>>Wie geht das?

> Es wird jedesmal von Access die Excel - Tabelle neu erstellt. Nach der
> Erstellung möchte ich die Formatierungen von Access heraus in Excel
> durchführen. Das Modul nach Access kopieren.

Wie Michael schon schreibt, den Makro VBA Code in eine Access Methode
verpacken, drumherum ein With objSheet und die Punkte nicht vergessen.
Dann sollte es gehen.

mfG
--> stefan <--

Christian Kaltenbrunner

unread,
Mar 31, 2005, 7:19:05 AM3/31/05
to
Hallo Michael,

"Michael Kocher" <michael...@gmx.net> schrieb im Newsbeitrag
news:O2Mkgde...@tk2msftngp13.phx.gbl...

Nein habe ich noch nie gemacht!

Gruß
Christian


Henry Habermacher [MVP Access]

unread,
Mar 31, 2005, 9:40:31 PM3/31/05
to
Hallo Christian

Christian Kaltenbrunner <kalten...@nospam.net> wrote:

> ich habe mir in Excel 2003 ein Makro erstellt und möchte dieses Modul
> nach dem Export von einer Excel - Tabelle mit Access 2003 ausführen.
> Wie geht das?

Am einfachsten nimmst Du diesen Code und kopierst diesen in eine neue
Funktion in einem Standard Modul in Access.
Dann setzt Du einen Verweis auf die Excel Typelibrary (Optionen - Referenzen
im VBA Editor). Nun stehen Dir die Excel Objekte auch in Access zur
Verfügung.

Du musst nun folgendes machen:

Dim appExcel as Excel.Application
Dim wbk as Excel.Workbook
set appExcel = createObject("Excel.Application")
set wbk = appExcel.Open "Pfad und name des Workbooks"

Jetzt hast Du das Workbook in Excel geöffnet und kannst nun die Befehle
genau gleich hier anwenden, die Du auch im Makro aufgezeichnet hast. Du
musst allerdings überall noch die appExcel vorne dran hängen, weil in Access
die Access.Application die Default Application ist, nicht die
Excel.Application. Leider zeichnet das das der Excel Makro Recorder nicht
auf.

Also musst Du einfach statt:

ActiveWorkbook.Selection

appExcel.ActiveWorkbook.Selection

schreiben. Am besten machst Du einfach mal den Code rein, ergänzt obiges und
kompilierst dann. der VBA Editor wird dann meckern, wenn er etwas nicht
versteht, weil er in der Access Typelibrary sucht. Mach dann dort einfach
"appExcel." vorne dran und versuche wieder zu kompilieren.

Ganz am Schluss musst Du dann Excel wieder Schliessen und das Objekt
vernichten:

wbk.Save
appExcel.Quit
set wbk = nothing
set appExcel = nothing

Und dann benötigst Du noch einen funktionierenden ErrorHandler, der im
Fehlerfall die standardmässig versteckte Excel Instanz anzeigt, damit diese
der Benutzer selber schliessen kann. Das würde etwa so aussehen:

Public Function Foo(...)..
On Error GoTo PROC_ERR


... hier Dein Code


PROC_EXIT:
Exit Function 'oder Sub

PROC_ERR:
objExcel.Visible = True
MsgBox "Fehler beim Bearbeiten der Excel Tabelle: " & _
vbcrlf Err.Description
set objExcel = Nothing
End Function 'oder Sub, was halt immer


HTH
Henry

--
Keine E-Mails auf Postings in NGs senden!
Don't send e-mails to postings in newsgroups!
KB: http://support.microsoft.com/default.aspx
FAQ: http://www.donkarl.com (neu mit Suchfunktion!)
OH: Online Hilfe von Microsoft Access (Taste F1)
Downloads: http://www.dbdev.org

0 new messages