Problemstellung / Aufgabe:
Ich möchte eine Funktion erstellen die mir z.B. den gesamten Filename in eine Zelle übergibt. Diese Funktion soll für alle zukünftigen Dateien verfügbar sein.
Function DateiPfad() As String
DateiPfad = ActiveWorkbook.FullName
End Function
Ergebnis:
Nach erstellen einer neuen Datei und eingeben von „=DateiPfad()“ in eine Zelle erhalte ich den Fehler „#NAME?“ d.h. ungültiger Name. Die Funktion scheint nicht bekannt zu sein!
Wäre nett wenn mir jemand behilflich sein könnte. Gruß Joerg
das ist zugegebener Maßen ein bischen blöd gelöst. Du musst in der Arbeitsmappe, in der deine Function ´DateiPfad()´ aufgerufen wird, einen „Verweis“ auf Personl.xls machen: Im VBA-Editor in einem Modulblatt der aufrufenden Mappe das Menü Extras -> Verweise anwählen. Dann geht ein Fensterchen „Verweise - deine_datei.xls“ auf, darin ein Häkchen bei Personl.xls machen.
Dann sollte es gehen - bei mir jedenfalls.
Ich möchte eine Funktion erstellen die mir z.B. den gesamten
Filename in eine Zelle übergibt. Diese Funktion soll für alle
zukünftigen Dateien verfügbar sein.
Function DateiPfad() As String
DateiPfad = ActiveWorkbook.FullName
End Function
Ergebnis:
Nach erstellen einer neuen Datei und eingeben von
„=DateiPfad()“ in eine Zelle erhalte ich den Fehler „#NAME?“
d.h. ungültiger Name. Die Funktion scheint nicht bekannt zu
sein!
Ja, das ist korrekt - die personl.xls ist eigentlich ‚nur‘ für Prozeduren und nicht für Functions gedacht.
Erstelle daher, wie von Laika gesagt, einen Verweis auf die Datei - oder (das ist meine Präferenz) erstelle dir eine Datei, die nur Functions enthält und speichere diese als AddIn ab (einfach im Speichern-Dialog auswählen).
Binde dieses AddIn dann über Extras/AddIns-Manager in Excel ein. Alle Functions die Du darin hat werden dann automatisch im Funktions-Assistenten angezeigt. Im VBA-Editor ist das AddIn dann ebenfalls sichtbar, Du kannst also problemlos neuen Code hinzufügen und/oder bestehenden verändern.