Ereignisse Workbook (Datei / Arbeitsmappe)

Aus SAP-Wiki
Wechseln zu: Navigation, Suche

Events

Workbook_Activate

  • Tritt ein, sobald eine Arbeitsmappe aktiviert wird.

Ein Arbeitsblatt wird aktiviert.

Worksheets("Tabelle1").Activate

Workbook_BeforeClose

'Listing 8.4: Die Mappe kann nur unter bestimmten Umständen geschlossen werden.
'Held VBA, S. 240
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  With Tabelle2
   .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = Now
   .Cells(.Rows.Count, 1).End(xlUp).Offset(0, 1).Value = Environ("Username")
  End With

  With Tabelle1
    If .Range("A1").Value <> "OK" Then
      MsgBox "Mappe kann nicht geschlossen werden!"
      Cancel = True
    Else
      Cancel = False
      ThisWorkbook.Save
    End If
 End With
end sub
'Listing 8.3: Beim Schließen der Mappe wird eine Zugriffsdokumentation gepflegt.
'Held VBA, S. 239
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  With Tabelle2
   .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Value = Now
   .Cells(.Rows.Count, 1).End(xlUp).Offset(0, 1).Value = Environ("Username")
  End With

  Cancel = False
  ThisWorkbook.Save
End Sub
'Listing 7.2.: Beim Schließen der Mappe ein Arbeitsblatt markieren
'Held VBA, S. 193
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Worksheets("Tabelle1").Active
End Sub
'Listing 7.4.: Beim Schließen der Mappe Automatisch speichern ohne Rückfrage
'Held VBA, S. 195
'Glaube hier muss nun ThisWorkbook genommen werden statt ActiveWorkbook
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Application.DisplayAlerts = False
  ThisWorkbook.Save
  ThisWorkbook.Close
End Sub

Workbook_BeforePrint

  • Tritt vor dem Druck einer Arbeitsmappe oder auch einer einzelnen Tabelle ein.
'Listing 8.6: Es ist nicht möglich, auch nur eine Seite auszudrucken.
'Held VBA, S. 241
Private Sub Workbook_BeforePrint(Cancel As Boolean)
  Cancel = True
End Sub

Workbook_BeforeSave

  • Tritt vor dem Speichern-Vorgang ein. Dabei spielt es keine Rolle, ob Sie über Menübefehle, Symbolleiste oder Tastenkombinationen speichern.
'Listing 8.5: Das Speichern der Mappe ist nur unter bestimmten Bedingungen möglich.
'Held VBA, S. 241
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  If Worksheets("Tabelle3").Range("A1").Value <> Date Then
    MsgBox "Arbeitsmappe kann nicht gespeichert werden!"
    Cancel = True
  Else
    Cancel = False
  End If
End Sub

Workbook_Deactivate

  • Tritt ein, wenn eine Arbeitsmappe deaktiviert wird; beispielsweise wenn eine Arbeitsmappe minimiert wird.

Workbook_NewSheet

  • Tritt ein, wenn eine neue Tabelle in die Arbeitsmappe eingefügt wird.
'Listing 8.7: Eine neu eingefügte Tabelle wird sofort wieder entfernt.
'Held VBA, S. 242
Private Sub Workbook_NewSheet(ByVal Sh As Object)
  Application.DisplayAlerts = False
  Sh.Delete
  Application.DisplayAlerts = True
End Sub

Workbook_open

'Listing 8.2: Beim Öffnen der Mappe einen »Aufenthaltsbereich« definieren
'Held VBA, S. 237
Private Sub Workbook_Open()
  On Error GoTo fehler
  With Worksheets("Tabelle1")
   .Activate
   .ScrollArea = "A1:D10"
  End With
  Exit Sub

 fehler:
   MsgBox "Die Tabelle ist nicht vorhanden!"
End Sub
'Aktivieren des richtigen Tablettenblattes beim Öffnen einer Arbeitsmappe
Private Sub Workbook_Open()
Dim MonatNr as Integer
Const TabName = "Tabelle"

MonatNr = Month(Now())
On Error GoTo fehler
Sheets(TabName & MonatNr).Activate
Exit Sub

Fehler:
   MsgBox "Es gibt kein Blatt mit dem Namen " & TabName & MonatNr
End Sub
'Listing 8.1: Eine Tabelle/Arbeitsblatt beim Öffnen der Mappe voreinstellen
'Held VBA, S. 236
Private Sub Workbook_Open()
  On Error GoTo fehler
  Tabelle1.Activate
  Exit Sub

  fehler:
    MsgBox "Die Tabelle ist nicht vorhanden!"
End Sub

Workbook_SheetActivate

  • Tritt ein, wenn ein beliebiges Tabellen- oder Diagrammblatt in der Arbeitsmappe aktiviert wird.

Workbook_SheetBeforeDoubleClick

  • Tritt ein, wenn an einer beliebigen Stelle der Arbeitsmappe ein Doppelklick mit der linken Maustaste durchgeführt wird.

Workbook_SheetBeforeRightClick

  • Tritt ein, wenn an einer beliebigen Stelle der Arbeitsmappe ein Klick mit der rechten Maustaste durchgeführt wird.

Workbook_SheetCalculate

  • Tritt nach Neuberechnung jedes Tabellenblattes auf.

Workbook_SheetChange

  • Tritt ein, wenn sich auf einem beliebigen Tabellenblatt etwas ändert, sei es durch eine Verknüpfung oder durch den Anwender.

Workbook_SheetDeactivate

  • Tritt ein, sobald ein beliebiges Tabellenblatt in der Arbeitsmappe verlassen wird.

Workbook_SheetFollowHyperlink

  • Tritt ein, wenn der Anwender auf einen Hyperlink in einer Tabelle klickt.

Workbook_SheetSelectionChange

  • Tritt ein, wenn sich die Markierung auf einem Tabellenblatt ändert.

Workbook_WindowActivate

  • Tritt ein, wenn ein Arbeitsmappenfenster aktiviert wird.

Workbook_WindowDeactivate

  • Tritt ein, wenn ein Arbeitsmappenfenster deaktiviert wird.