Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mehrere Befehle in Workbook Open

Mehrere Befehle in Workbook Open
02.08.2006 14:16:53
Martin
Hallo ich habe eine Excel Datei bei deren Start sich ein
Zugriffsprotokoll die Benutzer usw. notiert.
Nun möcht ich das auch gleich eine Userform geöffnet wird.
Leider funzt die Protokoll funktion dann nicht mehr:
Das ist der Code In "DieseARbeitsmappe"
Dim AppObject As New CAppLog

Private Sub Workbook_Open()
Set AppObject.app = Application
Ufrm_Main.Show
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Set AppObject.app = Nothing
End Sub

Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Befehle in Workbook Open
02.08.2006 14:26:05
stefanseevetal
Hallo Martin,
versuch es mal mit
Load Ufrm_Main
in der Zeile vor Deinem Ufrm-Main.Show
Gruß,
Stefan
AW: Mehrere Befehle in Workbook Open
02.08.2006 14:47:39
Martin
Hallo,
also ich hab jetzt mal mit
Load Ufrm_Main.show geht nicht
Load (Ufrm_Main.show) geht auch nicht.
war das richtig interprtiert von mir?
AW: Mehrere Befehle in Workbook Open
02.08.2006 15:18:38
stefanseevetal
Hallo Martin,
sorry, habe mich wohl etwas unklar ausgedrückt. Es gehört in eine extra Zeile:
Load Ufrm_Main
Ufrm_Main.Show
So, müsste es gehen.
Gruß,
Stefan
Anzeige
AW: Mehrere Befehle in Workbook Open
02.08.2006 15:53:06
Martin
Hallo,
allso jetzt öffnet sich die Userform wieder, aber der Eintrag in die Datei Zugriffs-Datei.txt wird nicht geschrieben.
AW: Mehrere Befehle in Workbook Open
02.08.2006 16:00:32
Jens
Hi,
du initialisierst eine Klasse, der Code ist aber nicht in deinem posting genau wie der für das Zugriffsprotokoll.
mfg Jens
AW: Mehrere Befehle in Workbook Open
02.08.2006 16:23:11
Martin
Und wo soll ich dann deiner meinung nach den
Befehl für den Start der Userform reinschreiben?
Anzeige
AW: Mehrere Befehle in Workbook Open
02.08.2006 16:35:41
Jens
Hi,
kann ich dir sagen, wenn ich den gesamten Code kenne. Alternativ zeig dis Userform
modeless an.
mfg Jens
AW: Mehrere Befehle in Workbook Open
02.08.2006 16:52:25
Martin
Code im Klassenmodul:
Public WithEvents app As Application

Private Sub app_WorkbookOpen(ByVal WBook As Excel.Workbook)
Benutzer = Application.UserName
Datum = Format(Now, "dd.mm.yyyy")
Uhrzeit = Format(Now, "HH:MM")
Dateiname = WBook.FullName
Open "T:\Haupt\Personalakten\Kaufpreissammlung\Zugriffe_Kaufpreissammlung.txt" For Append As #1
Print #1, Benutzer & vbTab & Datum & vbTab & Uhrzeit _
& vbTab & Dateiname
Close #1
End Sub

Code in DieseArbeitsmappe:
Dim AppObject As New CAppLog

Private Sub Workbook_Open()
Set AppObject.app = Application
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Set AppObject.app = Nothing
End Sub

Anzeige
AW: Mehrere Befehle in Workbook Open
02.08.2006 16:59:47
Jens
Hi,
soll die Userform auch immer angezeigt werden, wenn ein Workbook geöffnet wird?
mfg Jens
AW: Mehrere Befehle in Workbook Open
02.08.2006 17:01:27
Martin
Ja die soll direkt beim öffnen der Datei angezeigt werden
AW: Mehrere Befehle in Workbook Open
02.08.2006 17:05:19
Jens
Hi,
nochmal genauer, der Code im Klassenmodul rattert ja bei jedem Öffnen eines Workbooks
los, soll da auch jedesmal die Userform angezeigt werden oder nur einmalig beim Start
der bestimmten Datei?
mfg Jens
Anzeige
AW: Mehrere Befehle in Workbook Open
02.08.2006 17:07:48
Martin
Ja das Klassenmodul soll jedes mal laufen und die Userform soll bei jedem start der Datei angezeigt werden.
AW: Mehrere Befehle in Workbook Open
02.08.2006 17:27:11
Jens
Hi,

Private Sub app_WorkbookOpen(ByVal WBook As Excel.Workbook)
Benutzer = Application.UserName
Datum = Format(Now, "dd.mm.yyyy")
Uhrzeit = Format(Now, "HH:MM")
Dateiname = WBook.FullName
Open "T:\Haupt\Personalakten\Kaufpreissammlung\Zugriffe_Kaufpreissammlung.txt"
For Append As #1
Print #1, Benutzer & vbTab & Datum & vbTab & Uhrzeit _
& vbTab & Dateiname
Close #1
Userform1.Show 'Natürlich muss da der Name deiner Userform stehen
End Sub

mfg Jens
Anzeige
AW: Mehrere Befehle in Workbook Open
03.08.2006 08:04:38
Martin
Danke Jens,
Jetzt geht es
For Append As #1
nur diesen BEhefel muss ich weglassen.
Danke!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Mehrere Befehle im Workbook Open


Schritt-für-Schritt-Anleitung

Um mehrere Befehle im Excel VBA Workbook_Open Event auszuführen, kannst du folgende Schritte befolgen:

  1. Öffne die Excel-Datei und navigiere zum VBA-Editor (drücke ALT + F11).
  2. Suche im Projektbaum nach DieseArbeitsmappe (ThisWorkbook).
  3. Füge den folgenden Code in das Workbook_Open Event ein:
Dim AppObject As New CAppLog

Private Sub Workbook_Open()
    Set AppObject.app = Application
    Load Ufrm_Main
    Ufrm_Main.Show
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Set AppObject.app = Nothing
End Sub
  1. Erstelle eine Klasse CAppLog und füge den Code für das Zugriffsprotokoll hinzu:
Public WithEvents app As Application

Private Sub app_WorkbookOpen(ByVal WBook As Excel.Workbook)
    Dim Benutzer As String
    Dim Datum As String
    Dim Uhrzeit As String
    Dim Dateiname As String

    Benutzer = Application.UserName
    Datum = Format(Now, "dd.mm.yyyy")
    Uhrzeit = Format(Now, "HH:MM")
    Dateiname = WBook.FullName

    Open "T:\Haupt\Personalakten\Kaufpreissammlung\Zugriffe_Kaufpreissammlung.txt" For Append As #1
    Print #1, Benutzer & vbTab & Datum & vbTab & Uhrzeit & vbTab & Dateiname
    Close #1
End Sub
  1. Stelle sicher, dass die Userform Ufrm_Main existiert und richtig benannt ist.

Häufige Fehler und Lösungen

  • Fehler: Die Userform öffnet sich nicht.

    • Lösung: Stelle sicher, dass du die Load Ufrm_Main Zeile vor Ufrm_Main.Show hinzugefügt hast, um die Userform im Speicher zu laden.
  • Fehler: Das Zugriffsprotokoll wird nicht geschrieben.

    • Lösung: Überprüfe den Pfad zur Datei Zugriffe_Kaufpreissammlung.txt und stelle sicher, dass du die Berechtigungen zum Schreiben hast.

Alternative Methoden

Eine alternative Methode, um Befehle bei einem Workbook-Öffnen auszuführen, ist die Verwendung des Workbook_Open Events in Kombination mit der Application.WorkbookOpen Methode. Hierbei kannst du ohne eine separate Klasse arbeiten, indem du den Code direkt im DieseArbeitsmappe einfügst:

Private Sub Workbook_Open()
    ' Zugriffsprotokoll
    Dim Benutzer As String
    Benutzer = Application.UserName
    ' Weitere Logik hier...

    ' Userform anzeigen
    Userform1.Show
End Sub

Praktische Beispiele

Ein praktisches Beispiel für die Verwendung des Workbook_Open Events könnte so aussehen:

Private Sub Workbook_Open()
    MsgBox "Willkommen in der Datei!"
    Load Ufrm_Main
    Ufrm_Main.Show
End Sub

Hierbei wird beim Öffnen der Datei eine Willkommensnachricht angezeigt, bevor die Userform geladen wird.


Tipps für Profis

  • Nutze das Workbook_Open Event, um Berechnungen oder Datenaktualisierungen automatisch durchzuführen, wenn das Workbook geöffnet wird.
  • Achte darauf, die Userform modal oder modeless anzuzeigen, je nach Bedarf. Bei Ufrm_Main.Show vbModeless bleibt das Excel-Fenster aktiv, während die Userform angezeigt wird.

FAQ: Häufige Fragen

1. Wie kann ich zusätzliche Befehle im Workbook Open Event hinzufügen?
Du kannst einfach weitere VBA-Befehle innerhalb des Workbook_Open Events hinzufügen, z.B. Daten aktualisieren oder bestimmte Zellen formatieren.

2. Funktioniert das auch in Excel 2016?
Ja, die beschriebenen Methoden und Codes funktionieren in Excel 2016 und späteren Versionen, die VBA unterstützen.

3. Was mache ich, wenn ich eine Fehlermeldung bekomme?
Prüfe den Code auf Schreibfehler oder fehlende Objekte und stelle sicher, dass alle benötigten Userforms und Klassenmodule vorhanden sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige