VBA: Die Ereignisprozedur „Workbook_Open“ erstellen

workbookopen4

Ereignisprozeduren in VBA sind eine spezielle Art an Prozeduren. Sie müssen nicht manuell aufgerufen werden, sondern werden automatisch ausgeführt, wenn ein bestimmtes Ereignis eintritt.

Dieser Beitrag soll eine solche Prozedur zeigen, wenn eine Arbeitsmappe geöffnet wird.

9eeebcd8cad4470c88a4a51298ba2772

Wichtig ist zunächst zu wissen, wo die Prozedur untergebracht werden soll.

Wird sie in einem generellen Modul untergebracht, wird dies nicht zum gewünschten Ergebnis führen, das Ereignis wird nicht ausgeführt.

Eine neue Arbeitsmappe führt dazu, dass im VBA-Projekt das Modul „Diese Arbeitsmappe“ enthalten ist, die Abbildung zeigt das.

d9540bbd8afc40fbb2816dc2f2dd922c

workbookopen1

Daraus folgt, dass Ereignisse, die sich auf die Arbeitsmappe beziehen, im Modul „Diese Arbeitsmappe“ enthalten sind.

Dagegen sind Ereignisse, die sich auf eine Tabelle beziehen, im Modul des Tabellenblattes zu finden.

Wenn Du nun ein Ereignis für die Arbeitsmappe erstellen möchtest, klicke im Projektfenster doppelt auf „Diese Arbeitsmappe“.

Im VBA-Editor stehen nun zwei Kombinationsfelder zur Verfügung.

Wähle links „Workbook“ und rechts „Open“.

workbookopen2

Sobald die Auswahl getroffen ist, stehen eine einleitende und eine abschließende Codezeile bereits zur Verfügung. Dazwischen kann nun der gewünschte Code eingetragen werden.

Als Beispiel könnte eine MsgBox angezeigt werden, die das aktuelle Datum ausgibt und eine zweite, die mitteilt, welche Arbeitsmappe geöffnet wurde.

Der vollständige Code lautet dazu:

Private Sub Workbook_Open()

Dim datHeute As Date

datHeute = Date()

MsgBox “Heute ist der ” & datHeute

MsgBox “Sie haben die Arbeitsmappe “”” & _

ThisWorkbook.Name & “”” geöffnet.”

End Sub

Füge die fehlenden Codezeilen in den VBA-Editor ein.

Beachte, dass zuerst die Variable „datHeute“ deklariert wird. Ihr wird der Wert „Date“ zugewiesen.

Mit der Date-Funktion wird das aktuelle Datum ausgewählt.

Dies war nur ein ganz einfaches Beispiel für eine Ereignisprozedur.

Noch ein kleines Beispiel. Du willst beim Öffnen der Arbeitsmappe nach Datumsanzeige und Anzeige des Arbeitsmappennamens die Summe eines Wertebereiches ausrechnen lassen.

workbookopen3

Ergänze dazu das vorhandene Makro um zwei Zeilen.

Private Sub Workbook_Open()

Dim datHeute As Date

datHeute = Date()

MsgBox “Heute ist der ” & datHeute

MsgBox “Sie haben die Arbeitsmappe “”” & _

ThisWorkbook.Name & “”” geöffnet.”

Range(“B9”).Activate

ActiveCell.Formula = “=SUM(B3:B8)”

End Sub       

Nach dem Öffnen der Arbeitsmappe wirst Du in Zelle B9 ein Ergebnis sehen.

workbookopen4

Du siehst, es können alle möglichen Operationen mit einem „Workbook_Open“-Ereignis in Gang gesetzt werden, probiere es aus.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

WordPress Cookie Plugin von Real Cookie Banner