Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1180to1184
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

Workbook_open: Add In gesteuert

Workbook_open: Add In gesteuert
Tommy
Hallo Liebe Herber Gemeinde,
ich habe mir ein Add In erstellt, welches nur angewendet werden kann, wenn eine bestimmte Arbeitsmappe
"xy.xlsm" geöffnet ist bzw. wird. Hintergrund ist die Entkapselung von Modulen, so dass nur ich diese mit Ihren Funktionen bzw. Methoden für diese Mappe nutzen kann. Die Arbeitsmappe enthält dabei Steuerelemente, welche durch das Add In gesteuert werden. Wenn nun genau diese Mappe geöffnet wird, soll durch eine Art Workbook_BeforeOpen() Prozedur eine Begrüßung/Anmeldung erfolgen. Irgendwie bekomme ich es aber nicht gebacken eine Prozedur zu erstellen, die nur bei dieser Mappe ausgelöst wird bzw. die prüft ob gerade ""xy" geöffnet wird.
VG
Tommy

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Events auf Applicationsebene
25.10.2010 20:00:48
ransi
HAllo Thommy
Da brauchst du eine eigene Klasse die die Application überwacht.
http://www.online-excel.de/excel/singsel_vba.php?f=58
Hört sich wild an, ist aber recht einfach.
Bau dir das mal nach:
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_Open()
    Call class_ini
End Sub


' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Dim myExcel As New clsExcel

Public Sub class_ini()
    Set myExcel = New clsExcel
    Set myExcel.myApplication = Application
End Sub


' **********************************************************************
' Modul: clsExcel Typ: Klassenmodul
' **********************************************************************

Option Explicit

Public WithEvents myApplication As Application


Private Sub myApplication_WorkbookOpen(ByVal Wb As Workbook)
    MsgBox Wb.Name
    If Wb.Name = "xyz.xls" Then MsgBox "mach was"
End Sub


ransi
Anzeige
AW: Einbindung von Klassen
26.10.2010 11:26:48
Klassen
@ransi
Bingo, passt wie die Faust auf's Auge!Danke!!
Ich muss zugeben, dass Klassen eine wunderbare Erweiterung liefern,
wo ich mich mehr mit der Materie auseinandersetzen sollte. Ich steck noch in den Kinderschuhen... :-)
@Luschi
sorry, ein kleiner inhaltlicher Fehler bei meiner Anfrage-Asche auf mein Haupt-.Das Add In besitzt daneben auch Funktionen die bei jeder Excelsitzung angewendet werden können, daher die dauerhafte Installation. Die anderen sollen wiegesagt nur anwendbar sein wenn "xy" geöffnet bzw. verfügbar ist. Die Konzeption dieser Wahl hat einen bestimmten Hintergrund (Stichwort: MultiUser...), der aber nicht Teil meines Problems war. Den Gedanken behalte ich aber. Danke vielmals für die Antwort!
Anzeige
AW: Workbook_open: Add In gesteuert
25.10.2010 22:19:19
Luschi
Hallo Tommy,
warum ein AddIn installieren, das nur für eine bestimmte Arbeitsmappe (AM) Aufgaben erfüllen muß;
es liegt nur nutzlos im Arbeitsspeicher rum, solange die entsprechende AM nicht geöffnet wurde.
In solchen Fallen lade ich das Addin erst beim Starten der jeweiligen Arbeitsmappe bzw.schließe es wieder beim Beenden der Arbeitsmappe.
Auch beim Öffnen des AddIn's wie eine gewöhnliche AM bleibt es ein AddIn und verhält sich auch so.
Außerdem ist es einfacher, das nicht installierte AddIn zu korrigieren - verändern - erweitern - auszutauschen.
Gruß von Luschi
aus klein-Paris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige