martinad
Goto Top

Excel 2007 Global verfügbare Funktion erstellen

Hallo an die Community,

ich habe eine Frage und hoffe das mir ein Excel-Kenner weiterhelfen kann face-smile .


Situation ist folgende.

Ich habe in meine bestehende Excel 2007 Datei eine Funktion eingebaut. Diese existiert als public definierte function in einem bas-modul, das ich im VBA Editor mit Excel 2007 erstellt habe.
Wenn der Benutzer in der Excel Datei nun die Funktionseingabe mit "=" in einer Zelle startet, taucht meine Funktion in der Liste auf und ich kann sie verwenden.


Problem ist folgendes:

Ich möchte diese Funktion für sämtliche Excel 2007 Dateien zumindest auf dem selben Computer verfügbar machen. Das heißt: einer neu erstellten oder bestehenden Excel Datei soll diese Funktion verfügbar sein.
Ich habe bereits probiert diese Funktion über Add-Ins einzubauen, was nicht funktioniert hat. Ich habe auch bereits versucht die Excel-Datei im XLSTART Verzeichnis zu platzieren, damit die Funktion immer geladen wird wenn sich Excel öffnet. Das hat auch nicht geklappt, da sich dann immer auch die Excel-Datei mit dem Makro öffnet.


Kennt jemand das Problem und hat einen Denkanstoss für mich?

Vielen Dank im Voraus, beste Grüsse
Martin

Content-Key: 90722

Url: https://administrator.de/contentid/90722

Printed on: April 24, 2024 at 22:04 o'clock

Member: hpbruns
hpbruns Jun 26, 2008 at 12:26:12 (UTC)
Goto Top
Hallo Martin

Du kannst Makros/Funktionen in einer "Persönlichen" Arbeitsmappe speichern. Diese wird unter dem Namen "PERSONAL.XLSB" im Vereichniss C:\Dokumente und Einstellungen\USER\Anwendungsdaten\Microsoft\Excel\XLSTART abgelegt. Am einfachsten läßt Du Dir ein Macro aufzeichnen und wählst als Speicherort die Persönliche Mappe aus.

Gruß

Hans-Peter
Member: bastla
bastla Jun 26, 2008 at 12:37:50 (UTC)
Goto Top
Hallo MartinAD und willkommen im Forum!

Ob der hier beschriebene Weg über ein Add-In auch in Excel2007 noch funktioniert, müsstest Du selbst ausprobieren (habe kein 2007er zur Hand; mit 2003 klappt's).

Der Nachteil der Methode mit einer automatisch gestarteten Mappe (sei es "PERSONL.XLS" oder die Variante mit dem "XLSTART"-Verzeichnis) ist, dass Du für die Verwendung der Funktion auch den Namen der Mappe mit angeben müsstest (ist zumindest bis zu Excel2003 so); ansonsten könntest Du das störende Fenster (analog zur "PERSONL.XLS") einfach ausblenden.

Grüße
bastla
Member: MartinAD
MartinAD Jun 26, 2008 at 12:39:25 (UTC)
Goto Top
Hallo Hans-Peter,

danke erstmal für die Antwort.

Ich habe das auch gleich versucht, leider nicht mit dem gewünschten Erfolg.
Das Ergebnis ist gleich mit dem Speichern der Datei unter c:\Programme\MS Office\XLSTART.

Wenn ich eine bestehende Excel Datei Öffne, dann wird 1. die Datei Personal.XLSB geöffnet und 2. zusätzlich die Datei die ich eigentlich öffnen wollte. Ich habe also immer 2 geöffnete Dateien, was ich nicht will.

Habe ich was falsch gemacht?

Danke + Gruss
Martin

EDIT:

Hallo bastla,

leider bringt die Methode wie eben beschrieben nicht den gewünschtn Erfolg, vllt. mache ich auch etwas falsch. Die Funktion lässt sich übrigens ohne angabe des Dateinamens starten (wenn die Makro-Datei zusätzlich geöffnet ist, was ich aber nicht will), wahrscheinlich weil sie "public" definiert wurde.

Mit einem Add-In habe ich es schon probiert, mein Add-In konnte ich auch einbinden, aber trotzdem steht die Funktion nicht zur Verfügung. Ich weis ehrlich gesagt auch nicht warum.
Member: bastla
bastla Jun 26, 2008 at 12:46:50 (UTC)
Goto Top
Hallo MartinAD!

In 2003 gibt es den Menüpunkt "Fenster / Ausblenden", welcher dafür sorgt, dass zB die "PERSONL.XLS" (wie die "PERSONAL.XLSB" in dieser Version noch heißt) "unsichtbar" geöffnet wird. Das "Ausblenden" bezieht sich dabei immer auf das gerade aktive Excel-Fenster.

[Edit] Nur der Vollständigkeit halber: Bis 2003 genügt auch die Deklaration der Function als "Public" nicht - es muss (außer bei der Variante "Add-In") immer die Schreibweise "Dateiname.xls!Funtionsname(Argument)" verwendet werden. [/Edit]

Grüße
bastla
Member: hpbruns
hpbruns Jun 26, 2008 at 14:00:39 (UTC)
Goto Top
Hallo Martin

ich nochmal face-wink

Das 2 Dateien geöffnet werden hat schon seine Richtigkeit.

Wenn Du die Datei PERSONAL manuell erstellst und abspeicherst musst Du diese, wie von bastla beschrieben ausblenden.

Lässt Du die Datei von Excel bei der Aufzeichnung eines Macros erstellen, blendet Excel diese automatisch aus. Was bedeutet, das, wen Du Änderungen vornehmen musst/möchtest, diese Arbeitsmappe wieder über Fenster/Einblenden sichtbar gemacht werden muss. Und nachher natürlich auch wieder unsichtbar.

Was das AddIn angeht, frag ich jetzt mal ganz blöd. Wird es im AddIn-Manager angezeigt?

Gruß

Hans-Peter
Member: MartinAD
MartinAD Jun 27, 2008 at 04:28:27 (UTC)
Goto Top
Guten Morgen,

das Problem ist gelöst - dank eurer Hilfe!

Hier mein Lösungsweg:

- Die Fuktion wurde in einem Modul in der Datei PERSONAL.XLSB gespeichert
- Die Datei PERSONAL.XLSB habe ich im XLSTART Verzeichnis unter c:\programme\MS Office 200\XLSTART gespeichert
- Wenn ich eine Excel Datei starte wurde die Personal.xlsb mitgeladen und angezeigt, das habe ich unterbunden, indem ich bei "Ansicht" aus "ausblenden" gegangen bin.
- Die Funktion kann ich nun aus einer beliebigen Excel Datei aufrufen mit dem Syntax: "=PERSONAL.XLSB!SummeWennFarbe($Argumente)"

Danke nochmal für die Hilfe an alle face-smile

Gruß
Martin
Member: Made750
Made750 Mar 23, 2010 at 11:29:21 (UTC)
Goto Top
Zitat von @MartinAD:
- Die Fuktion wurde in einem Modul in der Datei PERSONAL.XLSB gespeichert
- Die Datei PERSONAL.XLSB habe ich im XLSTART Verzeichnis unter c:\programme\MS Office 200\XLSTART gespeichert

Vielen Dank, euch allen für das gelöste Problem

Bei meinem Problem wurde die PERSONAL.XLSB (Excel 2007) beim Start von Excel nicht geladen.
Nun habe ich die PERSONAL.XLSB vom Benutzer-Startup Verzeichnis (C:\Users\User\AppData\Roaming\Microsoft\Excel\XLSTART\)
ins Excel-Startup Verzeichnis (C:\Program Files\Microsoft Office\Office12\XLSTART\) kopiert

Nun werden die Makros geladen und angezeigt

Gruss

Made750