Auslösen eines Ereignisses, wenn ein Arbeitsblatt deaktiviert ist (Microsoft Excel)
John muss sicherstellen, dass bestimmte Aktionen ausgeführt wurden (hinzugefügte Informationen usw.), bevor ein Benutzer ein Arbeitsblatt verlässt. Er fragt sich, ob es eine Art Makroereignis wie WorksheetBeforeDeactivate gibt.
Es gibt tatsächlich zwei Ereignisse, die Sie für diesen Zweck verwenden könnten. Sie können das SheetDeactivate-Ereignis im ThisWorkbook-Modul verwenden, um Aktionen auszulösen, wenn ein Benutzer ein Arbeitsblatt in der Arbeitsmappe verlässt:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) MsgBox Prompt:="You just left sheet:" & Sh.Name End Sub
Wenn Sie Aktionen nur auslösen möchten, wenn sie ein bestimmtes Arbeitsblatt verlassen, können Sie das Ereignis Deaktivieren im WorkSheet-Objekt verwenden:
Private Sub Worksheet_Deactivate() ' sheet specific code goes here End Sub
Sie sollten jedoch wissen, dass in beiden Fällen das Arbeitsblatt, zu dem der Benutzer wechseln möchte, nach Abschluss des Ereignisses das aktive Arbeitsblatt ist. Wenn Sie den Benutzer zwingen möchten, im Arbeitsblatt zu bleiben, müssen Sie sie auf folgende Weise speziell wieder in das Arbeitsblatt einfügen:
Private Sub Worksheet_Deactivate() ' sheet specific code goes here Sheets("Sheet1").Select End Sub
Dies setzt natürlich voraus, dass der Name des Arbeitsblatts, auf dem der Benutzer bleiben soll, Sheet1 ist.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (7728) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: