Hallo Freunde,
derzeit doktere ich, etwas verzweifelt, an dem Problem herum, wie ich auf ein
über Workbook_Open von einer xls-Datei geöffnetes AddIn, d.h. ein nicht installiertes AddIn, das aber gleichwohl die Eigenschaften einer .xla-Datei hat, in der Praxis zugreifen soll.
Zum Hintergrund siehe den Thread: https://www.herber.de/forum/messages/1064144.html
Ich eröffne hier einen neuen Thread, weil es jetzt um die spezielle Frage, wie man Dateien in andere einbindet, geht.
Luschi hatte mir in genanntem Thread erklärt, sie installiere AddIns, die nur von einigen, nicht von allen .xls-Dateien verwendet werden, grundsätzlich nicht, sondern öffne sie im Workbook_Open-Ereignis der jeweiligen Hauptatei und schließe sie
dann im Workbook_BeforeClose-Ereignis der gleichen Datei. Diese Methode hat auch bei mir wunderbar geklappt. Doch dann tauchte die Frage auf, wie ich danach in der Hauptdatei die Makros des so geöffneten AddIns anspreche. Ich bekomme dann immer die Meldung, der Makro-Name sei nicht bekannt. (Wohlgemerkt, es handelt sich zwar um ein AddIn, aber um ein nicht installiertes, gleichwohl auf die opben beschriebene Weise geöffnetes.)
Da lag die Idee nahe, das bereits geöffnete AddIn über den Excel-Editor (VBE) einzubinden. Auch
das hat funktioniert. Wenn das AddIn so in die Hauptdatei eingebunden ist, kann man über dessen
Codenamen mit nachgestelltem Punkt (z.B. "Ers.") plus Makroname auf die Makros dieses AddIns zugreifen.
Doch wenn ich anschließend, wie von Luschi vorgeschlagen, die Hauptdatei schließe,
veranlasst diese im Workbook_BeforeClose-Ereignis zuerst das Schliessen des AddIns. Excel stellt dann
natürlich fest, dass das nicht geht, weil das AddIn ja noch in Gebrauch sei. Es ist offenbar noch bei der Hauptdatei, wo ich es ja selbst im Excel-Editor eingebunden hatte. Die richtige Reihenfolge wäre also: zunächst die Hauptdatei erst danach das AddIn schließen.
Fazit: Es scheint also gar nicht möglich, ein solches AddIn im Worksheet_BeforeClose-Ereignis zu
schließen, weil es ja noch von der Hauptdatei benutzt wird, solange diese geöffnet ist.
Damit beginnt bei mir alles wieder von vorne: Wie rufe ich ein solches nicht installiertes AddIn auf, und
zwar so, dass ich auf dessen Makros auch zugreifen kann, und wie lasse ich es dann beim Schließen der Hauptdatei mit schließen, und zwar derart, dass in dieser Zeit am AddIn erfolgte Änderungen dort mit gespeichert werden?
Die AddIn-Problematik ist, wie dieses Beispiel zeigt, z.T. komplizierter als es auf den ersten Blick scheint.
Weiß jemand Rat? Besten Dank! Werner R.