Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1528to1532
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
Inhaltsverzeichnis

Addins einbinden für Makrocode

Addins einbinden für Makrocode
09.12.2016 20:43:21
Kursawe,
Servus zusammen
ich benutze für meine unterschiedlichen Projekte oft immer wieder die gleichen, einmal geschriebenen und dann bewährten Funktionen und auch eigene Konstanten als Rückgabewerte oder zur Fehlerbehandlung.
Altes Problem: Wenn man die Funktionen immer wieder ins jeweilige Projekt rüberkopiert, hat man bald keinen Überblick mehr, was nun die aktuellste Fassung ist, Änderungen gehn evtl. verloren.
Deshalb wollte ich diese Funktionen/Konstanten nun in ein AddIn *.xlam verwandeln.
Dieses lässt sich auch in Excel einbinden und verwenden. Im VBA Projekt im Makro-Editor habe ich das xlam-File auch über die Verweise/References eingebunden, aber....
in meinen Klassenmodulen bleiben diese Funktionen und Konstanten dennoch unbekannt! (In normalen Modulen weiss ichs nun gerade nicht; Problem in der Arbeit, jetz sitz ich zuhause)
Hat jemand eine Idee, was ich da zusätzlich noch bearbeiten muss?
... oder ists vielleicht wieder so eine unmögliche Sicherheitspolicy meines Unternehmens, daß ich das wieder nicht einbinden darf
Thomas

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Normalerweise kann man ein AddIn nur dann ...
09.12.2016 22:40:47
Luc:-?
…über Extras - Verweise in Gänze in ein VBA-Project einbinden, Thomas,
wenn alle Komponenten des AddIns eindeutige und unverwechselbare Bezeichner haben, was insbesondere für alle Arten von Klassenmodulen gilt. Ein normales Basismodul ist da idR etwas unempfindlicher, sollte aber auch mit seinem Bezeichner nicht unbedingt mit einem des aktuellen Projekts identisch sein. Folglich sollte man die CodeNames des AddIns entsprd ändern! Dann kann das AddIn eingebunden und die Prozeduren seiner Klassenmodule auch direkt per Vorsatz der Klasse angesprochen wdn. Tut man das nicht, wird der VBE mitteilen, dass der Verweis nicht erfolgreich war und demzufolge auch nicht angelegt worden ist.
Verwenden kann man also nur, was auf diese Weise dem aktuellen VBA-Projekt bekannt gemacht und zV gestellt wurde. Die Verwendung der Fktt eines AddIns in Xl-Fmln ist dagegen problemloser möglich.
Gruß, Luc :-?
Besser informiert mit …
Anzeige
AW: Normalerweise kann man ein AddIn nur dann ...
10.12.2016 08:54:49
Kursawe,
Danke Luc
Das hab ich eigentlich so gemacht...
Das mit den Bezeichnern ist ein guter Tip, dürfte sich aber nichts beissen. Ich hab zwar die Konstanten via extra Basismodul vorher drin gehabt, aber dann alles auskommentiert - löschen wollt ichs noch nicht. Ausserdem mosert das Teil auch nicht, daß eine doppelt wär, sondern gar nicht vorhanden.
In den Verweisen erscheint dann aber nur ein Haken vor dem "VBA-Project", welches ich so eingebunden hatte, wie auch Du es beschrieben hast.
Ich schau mir das mal am Montag in der Arbeit so und probiers vorher auch nochmal zuhause. Wenns zuhause so klappt wie von Dir beschrieben und und vorn mir eh schon gemacht, kanns wieder nur so ne blöde Sicherheitsvorschrift von unserer IT sein. Unsre Bank is da extrem... da darfst fast gar nix, aber sollst alles machen
Danke einstweilen
Thomas
Anzeige
AW: Normalerweise kann man ein AddIn nur dann ...
10.12.2016 09:09:40
Nepumuk
Hallo,
damit die Klassen bekannt werden musst du im Eigenschaftsfenster die Instancing-Eigenschaft der Klasse von 1-Private auf 2-PublicNotCreatable setzen.
Gruß
Nepumuk
AW: Normalerweise kann man ein AddIn nur dann ...
10.12.2016 10:08:21
Kursawe,
Stop
das kam nun wohl falsch rüber - sorry gegebenenfalls
Ich will nicht das Projekt mit den Klassenmodulen einbinden, sondern in das Projekt, in dem ich mit den Klassenmodulen arbeite, das AddIn, welches meine Standardfunktionen und meine Konstanten beinhaltet. Nebenbei hab ich die eh schon auf PublicNotCreatable gesetzt, bin aber noch nicht so weit, daß ich den Unterschied bisher nutzen musste.
Also Bsp:
Projekt1 beinhaltet eine class xy, welche in ihren Methoden auf (public) Konstante IVERAENDERMINED und (public) Function duaWos() zugreift, welche beide im Projekt2 definiert sind und ich dann mal als xlam abgespeichert hab.
Ich hab das als einfach Version nun eben auch noch daheim nachgestellt (365er Excel)
Einfaches AddIn mit (public) Konstante IVERAENDERMINED as integer =1 und (public) function duaWos(a as integer) as integer, die den übergebenen Wert einfach verdoppelt.
Abgespeichert als xlam
Excel zu, Excel auf, Addin eingebunden
Neue Mappe
VBA Editor
das Addin erscheint unter den Projekten
In der neuen Mappe ein Modul mit sub test (diesmal vorerst nur Modul zum ersten Test, zweiter Test mit Klassenmodul liefert aber das gleiche Ergebnis), die einfach nur einen Integer mit der Konstante belegen, mit der Funktion verdoppeln und mittels debug.print ausgeben soll
Ohne Extras-Verweise erkennts das Modul nicht
Beim Einbinden über Extras-Verweise erhalt ich nun eine neue Fehlermeldung, die ich in der Arbeit nicht hatte: Name steht in Konflikt mit vorhandenem Modul, Projekt oder vorhandener Objektbibliothek
Hab das Ganze nochmal von vorn, dieses Mal ohne vorheriges Einbinden des Addins, sondern nur via Verweise.
Da übernimmt es den Verweis nach Auswahl in die Liste der Verweise mit rein, beim Klick auf ok kommt die gleiche Fehlermeldung. Konstante/Funktion werden weiterhin nicht erkannt
Neue Fehlermeldung, hatte ich in der Arbeit nicht.
Kennt das jemand?
Laut Hilfe liegts an der Eindeutigkeit, aber sowohl Modulbenennung als auch Konstanten/Variablen sind eindeutig.
Liegts daran, daß das AddIn noch ein "Diese Arbeitsmappe" und "Tabelle1" im Projektexplorer anzeigt, aber sonst nirgends verfügbar macht?
Anzeige
AW: Normalerweise kann man ein AddIn nur dann ...
10.12.2016 10:22:34
Nepumuk
Hallo,
du musst den Projektnamen ändern um einen Verweis setzen zu können.
Gruß
Nepumuk
AW: Normalerweise kann man ein AddIn nur dann ...
11.12.2016 20:55:12
Kursawe,
Genial... und doch soooooooooooooooooooo einfach!!!!
:)
Daheim klappts! Gleich morgen in der Arbeit noch ausprobieren
Vielleicht noch zweite Frage, kanns aber auch im extra-Thread machen
In der Arbeit sollen das nun wohl einzubindende AddIn mehr Leute nutzen können, drum will ich es auf einen Gruppenpfad legen und darauf verweisen.
Excel will das aber immer in den normal verwendeten lokalen AddIn-Pfad rüberschieben.
Weiß jemand, ob das Probleme macht?
Ansonsten probier ichs auch, nachdems mit der Lösung jetzt ja zu funktionieren scheint und meld mich ggf. nochmal
Thomas
aber vielen Dank einstweilen!
Anzeige
AW: Normalerweise kann man ein AddIn nur dann ...
11.12.2016 21:43:30
Nepumuk
Hallo,
ein Addin welches über einen Verweis an eine Mappe gebunden ist muss nicht über den Addins-Manager in Excel eingebunden werden. Durch den Verweis wird es automatisch geladen sobald du die Mappe öffnest.
Gruß
Nepumuk
AW: Normalerweise kann man ein AddIn nur dann ...
12.12.2016 21:00:24
Kursawe,
So... nun hats heut auch nochmal in der Arbeit geklappt
Dank nochmal an alle, Thema erledigt
Thomas
Ja, das musst du unbedingt umbenennen, ...
10.12.2016 10:25:50
Luc:-?
…Thomas,
denn das ist nur eine Default-Bezeichnung, die sich entsprd oft wiederholen kann. Auf so etwas kann folglich nicht verwiesen wdn. Genau das hatte ich auch gemeint!
Morrn, Luc :-?
AW: Ja, das musst du unbedingt umbenennen, ...
11.12.2016 20:58:21
Kursawe,
... und siehe antwort im anderen Threadzweig
Auch Dir herzlichen Dank
Eure beiden Klapse auf meinen Hinterkopf halfen weiter :-)
Thomas
Anzeige
Na, denn iss ja jut... ;-) owT
13.12.2016 19:18:54
Luc:-?
:-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige