Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1708to1712
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Makros in Personal.xlsb
03.09.2019 11:58:48
Werner
Hallo Forum,
im Laufe der Zeit habe ich mir ein paar Funktionen erstellt, die ich inzwischen in mehreren Excel-Files verwende. Um bei einer Änderung nicht in allen Excel-Files die alte gegen die neue Funktion austauschen zu müssen, wurde mir in einem früheren Thread empfohlen, diese Funktionen in PERSONAL.XLSB zu stellen.
Das habe ich nun versuchsweise gemacht, aber es sieht so aus, als würde Excel den Code in PERSONAL.XLSB nicht finden.
Ich nutze seit einier Zeit Office 2019 und kann nur noch unter dieser Version testen.
Wenn ich den VBA-Editor öffnen, sehe ich, dass PERSONAL.XLSB geladen ist, und darin auch die von mir abgelegte Test-Funktion. Wenn ich nun diese Funktion aufrufen, erhalte ich die Fehlermeldung "Sub oder Function nicht definiert".
Wenn ich die Funktion in meine aktive Excel-Mappe kopiere, funktioniert alles.
Wo liegt der Fehler?
Meine PERSONAL.XLSB und meine Test-Mappe sind hier:
https://www.herber.de/bbs/user/131810.xlsb
https://www.herber.de/bbs/user/131811.xlsm
Gruß
Werner

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makros in Personal.xlsb
03.09.2019 13:02:14
Nepumuk
Hallo Werner,
Prozeduren und Funktionen in der Personal.xlsb musst du so aufrufen:
Sub test()
    Debug.Print Application.Run("PERSONAL.xlsb!SagHallo", "Hallo")
End Sub

Gruß
Nepumuk
Anzeige
AW: Makros in Personal.xlsb
03.09.2019 14:20:34
Werner
Hallo Nepumuk,
Danke für Deine Antwort.
Wenn ich dazu alle meine Aufrufe umstellen muss, dann lasse ich es lieber so, wie es bisher ist: als Bestandteil jeder einzelnen Excel-Mappe, in welcher "meine" Funktionen benutzt werden. Teilweise werden in Funktionen weitere Funktionen aufgerufen!
Nein Danke!!
Gruß
Werner
AW: Makros in Personal.xlsb
03.09.2019 14:53:24
Nepumuk
Hallo Werner,
eine weitere Möglichkeit wäre, du setzt in den Mappen einen Verweis auf die PERSONAL.xlsb. Dann kannst du die darin enthaltenen Makros so aufrufen als wenn sie in deiner mappe selbst wären. Du musst nur den Projektnamen den PERSONAL.xlsb ändern da keine zwei Projekte mit dem selben Namen haben kannst. Dazu einfach im Projektexplorer auf VBAProject(PERSONAL.xlsb) klicken und im Eigenschaftsfenster darunter den Namen "VBAProject" beliebig ändern, dann die PERSONAL.xlsb speichern.
Den Verweis setzt du über Extras - Verweise - Durchsuchen - und im sich öffnenden Datei-Explorerfenster 1. ganz rechts unten den Dateityp auf "Microsoft Excel Files …" ändern und 2. den Verweis mit einem Doppelklick auf die PERSONAL.xlsb im entsprechenden Ordner erstellen.
Gruß
Nepumuk
Anzeige
AW: Makros in Personal.xlsb
03.09.2019 19:33:45
Werner
Hallo Nepumuk,
das war aber eine super Ergänzung. Habe zwar einige Zeit gebraucht, um mit meinem Wissensstand wirklich zu verstehen, was ich machen muss. Aber ich habe es tatsächlich erfolgreich erledigt. Und es funktioniert.
Jetzt hätte ich nur noch eine kleine Frage: gibt es keine Möglichkeit, den Verweis maschinell einzutragen.
Danke und Gruß
Werner
AW: Makros in Personal.xlsb
04.09.2019 07:12:46
Nepumuk
Hallo Werner,
dazu müsstest du aber dem "Zugriff aus das VBA-Projekt zulassen". Die Einstellung findest du im Trust-Center unter Makroeinstellungen. Ist das für dich OK?
Wenn ja, dann so:
ActiveWorkbook.VBProject.References.AddFromFile Filename:="C:\PERSONAL.xlsb"

Gruß
Nepumuk
Anzeige
AW: Makros in Personal.xlsb
04.09.2019 09:56:03
Werner
Hallo Nepumuk,
danke für Deine Antwort. Ich hoffe, ich habe das richtig umgesetzt.
Im Trustcenter musste ich keine Änderungen vornehmen; den abgebildeten Stand hatte ich schon lange:
Userbild
Bei der Ausführung erhalte ich trotzdem eine Fehlermeldung.
Userbild
Inzwischen bevorzuge ich Deinen Vorschlag mit dem Verweis auf meine "PERSONAL.xlsb".
Eine Sache ist mir noch aufgefallen: wenn sowohl in Personal.Xlsb als auch in meinem aktiven Workbook ein gleichnamiges Makro vorhanden ist, wird immer das aus Personal.Xlsb ausgeführt. Daran muss man bei der Weiterentwicklung bzw. Fehlersuche denken.
Falls Du noch eine Idee hast: gerne. Andernfalls ist mein Problem sonst erledigt.
Gruß
Werner
Anzeige
AW: Makros in Personal.xlsb
04.09.2019 10:06:38
Nepumuk
Hallo Werner,
die Prüfung ob eine Sub oder Function deklariert ist passiert in dem Moment in dem die du die Sub aufrufst. Da ist aber der Verweis noch gar nicht gesetzt.
Gruß
Nepumuk
AW: Makros in Personal.xlsb
03.09.2019 17:34:16
onur
Schon mal mit
PUBLIC Function SagHallo(PText As String)

probiert?
AW: Makros in Personal.xlsb
04.09.2019 08:51:59
Werner
Hallo onur,
ja, Deinen Vorschlag habe ich probiert; erfolglos.
Trotzdem: Danke
Gruß
Werner
AW: Makros in Personal.xlsb
03.09.2019 17:49:12
Daniel
Hi
wenn es um selbstgeschriebene Funktionen in Excelzellen geht, dann füge mal die Funktion über den Funktionsassistenten (Menüpunkt Formeln - Funktion einfügen) ein.
dann siehst du, wie du die Funktion benennen musst.
Im Funktionsassistenten werden die selbstgeschriebenen Funktionen aller geöffneten Mappen unter der kategorie "Benutzerdefinert" gelistet.
die andere Alternative wäre, dass du diese Funktionen nicht in der Personl.xlsb ablegst, sondern in einem sog. AddIn (weitere Infos hierzu bitte selber suchen)
dann kannst du die selbst geschriebenen Funktionen ganz normal verwenden.
Gruß Daniel
Anzeige
AW: Makros in Personal.xlsb
04.09.2019 08:57:35
Werner
Hallo Daniel,
auch dir recht herzlichen Dank für Deine Antwort. Nein, es handelt sich nicht um "Funktionen in Excel-Zellen", sondern um Funktionen als Baustein für ein größeres Makro.
Ich habe mich auch mit dem Thema "Addin" beschäftigt. Wie Du im Thread inzwischen lesen kannst, habe ich die Lösung meines Problems bereits gefunden. Deshalb werde ich den Addin-Weg nicht weiter verfolgen.
Gruß
Werner
AW: Makros in Personal.xlsb
04.09.2019 09:05:05
Werner
Hallo Daniel,
auch Dir recht herzlichen Dank für Deine Antwort. Nein, es handelt sich nicht um "Funktionen in Excel-Zellen", sondern um Funktionen als Baustein für ein größeres Makro.
Ich habe mich auch mit dem Thema "Addin" beschäftigt. Wie Du im Thread inzwischen lesen kannst, habe ich die Lösung meines Problems bereits gefunden. Deshalb werde ich den Addin-Weg nicht weiter verfolgen.
Gruß
Werner
Anzeige
AW: Makros in Personal.xlsb
04.09.2019 09:31:59
Nepumuk
Hallo Werner,
du hast wohl meinen Beitrag nicht gesehen, ich habe jetzt Makro ergänzt mit u nicht in einen Fehler läufst wenn der Verweis schon gesetzt ist.
Public Sub Test()
Const PERSONAL_PATH As String = "C:\Users\kafflm\AppData\Roaming\Microsoft\Excel\XLSTART\ _
PERSONAL.XLSB" 'Anpassen !!!
Dim objReference As Object
Dim blnFound As Boolean
For Each objReference In ActiveWorkbook.VBProject.References
If LCase$(objReference.FullPath) = LCase$(PERSONAL_PATH) Then
blnFound = True
Set objReference = Nothing
Exit For
End If
Next
If Not blnFound Then ActiveWorkbook.VBProject.References.AddFromFile Filename:= _
PERSONAL_PATH
End Sub

Gruß
Nepumuk
Anzeige
AW: Makros in Personal.xlsb
04.09.2019 17:40:08
Werner
Hallo Nepumuk,
ich habe inzwischen weitere Probleme:
Wie bereits erwähnt, habe ich mich dafür entschieden, diverse Funktionen in PERSONAL.xlsb bereitzustellen. In meiner Arbeitsmappe habe ich dazu den erforderlichen Verweis aktiviert, und auf den ersten Blick läuft es gut.
Aber:
Wenn ich ein neues Modul einfügen möchte, geschieht das nicht in meine "normale" Arbeitsmappe, sondern in PERSONAL.xlsb.
Gleiches geschieht, wenn ich mit dem Recorder ein paar Schritte aufzeichne.
Ich habe dann das aufgezeichnete Makro in meine normale Mappe verschoben, und ihm einen sprechenden Namen gegeben. Doch Excel meckert, dass er das Makro in PERSONAL.xlsb nicht findet, Excel ist es anscheinend egal, dass genau das gesuchte Makro in meinem Workbook steht.
Was läuft hier falsch?
Gruß
Werner
Anzeige
AW: Makros in Personal.xlsb
04.09.2019 17:54:49
Nepumuk
Hallo Werner,
1. Wenn du ein Modul einfügst, musst du im Projektexplorer die Mappe aktivieren in die es einfügen willst.
2. Wenn du ein Makro aufzeichnest, dann bekommst du als erstes einen kleinen Dialog angezeigt. In diesem kannst du auswählen wo der aufgezeichnete Code gespeichert werden soll:
Userbild
Gruß
Nepumuk
AW: Makros in Personal.xlsb
04.09.2019 18:09:28
Werner
Hallo Nepumuk,
das mit dem Aufzeichnen ist mir nicht bewusst aufgefallen. Erst durch Deinen Hinweis habe ich es zur Kenntnis genommen. Damit wäre ein Problem gelöst.
Ungelöst ist noch, warum das Makro aus meiner Arbeitsmappe nicht genommen wird.
Gruß und Danke
Werner
Anzeige
AW: Makros in Personal.xlsb
04.09.2019 18:25:10
Nepumuk
Hallo Werner,
wie habe ich das zu verstehen?
Gruß
Nepumuk
AW: Makros in Personal.xlsb
04.09.2019 19:38:18
Werner
Hallo Nepumuk,
meine Planung sieht so aus, dass in Personal.xlsb nur "allgemeine" Funktionen stehen. Aktuell habe ich jetzt bei einem Projekt das Problem, dass ich eine Routine benötige, die speziell mit "dieser" Arbeitsmappe zusammenhängt. Da macht es keinen Sinn, dieses Makro in Personal.xlsb zu stellen. Und es macht auch keinen Sinn, den Code in das Basis-Makro einzuarbeiten; man verliert zu leicht den Überblick.
Wenn ich nun dieses Makro nur über den Namen aufrufe, sucht Excel nur in Personal.xlsb, nicht aber in der eigenen Arbeitsmappe, wo es unter dem entsprechenden Namen vorhanden ist.
Verständlich?
Gruß
Werner
AW: Makros in Personal.xlsb
04.09.2019 20:33:25
Nepumuk
Hallo Werner,
jetzt hab ich es verstanden.
Problem, die Mappe ist mit der PERSONAL verknüpft, dadurch werden die Makros der PERSONAL Bestandteil der Mappe, aber nicht umgekehrt. Dazu müsste die PERSONAL mit der Mappe verknüpft sein. Eine "Kreutzverknüpfung" ist aber nicht möglich. Daher müsstest du das Makro in der Mappe mit Application.Run aus der PERSONAL heraus aufrufen.
Gruß
Nepumuk
AW: Makros in Personal.xlsb
05.09.2019 08:43:05
Werner
Danke an Alle, besonders an Nepumuk für die tolle Unterstützung.
Leider funktioniert das nicht so, wie ich es mir vorgestellt hatte.
Ich werde meine PERSONAL.XLSB wieder löschen, und die entsprechenden Funktions-Makros wieder in die Arbeitsmappe kopieren, in welcher der Service benötigt wird. So habe ich jetzt schon viele Jahre gearbeitet, und werde es auch zukünftig so tun.
Gruß
Werner

15 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige