Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Aufruf einer Funktion in Excel aus Access

Begonnen von klausi76, Oktober 09, 2013, 13:38:19

⏪ vorheriges - nächstes ⏩

klausi76

Hallo zusammen,

habe bereits das Forum durchsucht und bin auf folgenden Code gestoßen, den ich versucht habe anzupassen:


Public Function xlfct()
    Dim xl As Object
    Set xl = CreateObject("Excel.Application")
    xlfct = xl.WorksheetFunction.excelbefehlsname()
    Set xl = Nothing
End Function


Der Befehl liegt in Excel im ersten Arbeitsblatt als public-Funktion vor.

Fehlermeldung: Laufzeitfehler 438, Objekt unterstützt diese Eigenschaft oder Methode nicht

Was mache ich falsch?

bahasu

Servus

klausi76

Danke, der Artikel war hilfreich für mein Grundverständnis, nur so wie ich das sehe können so nur exceleigene Funktionen aufgerufen werden.
War vorher unpräzise von mir formuliert, aber ich versuche eine umfangreiche Funktion, welche ich in Excel programmiert habe von Access aus aufzurufen und finde diese nicht im Objektkatalog wieder.

Wurliwurm

In dem Code oben wird nur ein Excel-Objekt angelegt, aber keine Excel-Mappe. Da Deine Makros in einer Excel-Mappe liegen und nicht im Excel an sich, braucht es eine Referenz auf eine Mappe (c:\meinemappe.xls o.ä.)

klausi76

Hab damit auch schon rumprobiert, dieselbe Fehlermeldung kam leider trotzdem


Public Function xlfct()

Dim xl As Object

Set xl = CreateObject("Excel.Application")
xl.DisplayAlerts = False

Set wb = xl.Workbooks.Open(Application.CurrentProject.Path & "\excelfilename.xls") '
xlfct = wb.WorksheetFunction.namedereigenenfunktion()

Set xl = Nothing

End Function


Hängt das vielleicht damit zusammen, dass meine selbst erstellte Funktion eigentlich kein Bestandteil des worksheetfunction-Funktionskataloges ist?
Weiss nicht wie der richtige Aufrufbefehl für selbst erstellte Funktionen sonst aussehen würde.

LG

klausi76

Die Funktion befindet sich in folgendem Objekt in Excel:




database

Hallo,

ich glaube mal gelesen zu haben, dass dein Vorhaben die Existenz einer Funktion als Benutzerdefinierte Funktion in deiner Arbeitsmappe erfordert.
Soll heißen, dass diese Funktion als solche in einem VBA Modul als 'Public Function' anzulegen wäre und nicht in einem Arbeitsblatt zu speichern ist.
Aber bitte mich nicht darauf verhaften - auch über die AddIns sollte das machbar sein, wenn deine Function als AddIn angelegt wird

schau auch mal da rein:

http://microsoft.public.de.access.narkive.com/WogrGrju/aufruf-benutzerdefinierte-excel-funktion