Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1284to1288
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

WorkbookOpen-Ereignis "global"

WorkbookOpen-Ereignis "global"
21.11.2012 16:54:17
Dave
Hallo zusammen,
sorry wegen des ungenauen Betreffs, aber ich wußte nicht, wie ich das besser beschreiben kann.
Man kann in jeder Datei über das Workbook-Open-Ereignis Code ausführen lassen. Dieser Code muss aber IN dieser Datei stehen.
Gibt es eine Möglichkeit, dass diese Ereignis auch aus einer anderen Datei heraus "abgefangen" wird?
Hintergrund:
Ich möchte in meiner personl.xls eine Liste pflegen, in der jede Excel-Datei, die ich öffne, automatisch eingetragen wird. Die gängigen Betriebssystem-Funktionen für "Recent-Dateien" sind mir da zu unflexibel, so dass ich mir daraus selbst was basteln will.
Der Code dafür ist irrelevant, das kriege ich hin, aber ich bräuchte einen "Trigger", der ausgelöst wird, ohne das die geöffnete Datei entsprechenden Code enthält.
Danke vorab und Gruß
David

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: WorkbookOpen-Ereignis "global"
21.11.2012 18:31:54
Tino
Hallo,
geht z. Bsp so, im Coder von Modul1 läuft dann Dein Makro für die Liste aufbauen.
Code kommt in die PERSONAL.XLSB.
kommt als Code in DieseArbeitsmappe
Option Explicit 
 
Private Sub Workbook_BeforeClose(Cancel As Boolean) 
Set oKlasseExcel = Nothing 
End Sub 
 
Private Sub Workbook_Open() 
Set oKlasseExcel = New Klasse1 
Set oKlasseExcel.App = Application 
End Sub 
kommt als Code in Modul1
Option Explicit 
Public oKlasseExcel As Klasse1 
 
Sub Mein_Makro(strFileName$) 
MsgBox "Mein Makro! Active Datei = '" & strFileName & "'" 
End Sub 
kommt als Code in Klasse1
Option Explicit 
 
Public WithEvents App As Application 
 
Private Sub App_WorkbookOpen(ByVal Wb As Workbook) 
If Not Wb.IsAddin Then 
    If Wb.FullName <> ThisWorkbook.FullName Then 
        Call Mein_Makro(ActiveWorkbook.Name) 
    End If 
End If 
End Sub 
 
Gruß Tino

Anzeige
persönlich würde ich ein AddIn verwenden
21.11.2012 19:41:34
Tino
Hallo,
ich würde dies über ein AddIn machen und die Daten
Zeilenweise in eine Textdatei (csv) schreiben.
Gruß Tino

AW: persönlich würde ich ein AddIn verwenden
22.11.2012 10:24:33
Dave
Hallo Tino,
das funktioniert genau so, wie ich das wollte. Vielen Danke.
Mit Klassenmodulen hab ich bisher noch nichts gemacht und weiß eigentlich gar nicht, wofür die gut sind.
Mit Addins hab ich noch nicht so viel Erfahrung. Oft war es so, wenn ich irgendwas manuelles als Addin aktiviert habe, dass dann andere aufgerufene Tabellen, in denen "Auto-Code" abläuft, nicht mehr richtig funktioniert haben und Fehlermeldungen produzierten.
Vielen Dank nochmal.
Gruß
David

Anzeige
Vorgehensweise ist fast gleich
22.11.2012 15:59:16
Tino
Hallo,
Vorgehensweise im Addin ist wie auch in der Persönlichen Mappe.
Man muss nur die Dateien abfangen die nicht Dokumentiert werden sollen,
z. Bsp. andere Addins oder die csv in die geschrieben wird.
Hier ein Beispiel Addin,
die Dokumentation wird auf dem Desktop in der Excel_Verwendung.csv durchgeführt.
Addin über den AddIn-Manager einbinden.
https://www.herber.de/bbs/user/82727.xla
Gruß Tino

AW: Vorgehensweise ist fast gleich
22.11.2012 16:18:36
Dave
Ok, werde ich bei Gelegenheit mal testen, bin aber jetzt zu sehr im Streß.
Hab mir die "History" jetzt erst mal so gebastelt, wie ich mir das vorgestellt hatte und es funzt auch.
Danke für deine Hilfe.
Gruß
David
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige