Die Excel Wühlkiste

Menüs programmieren

Menüpunkt aktivieren/deaktivieren

Unter Umständen kann die Verwendung eines Menüeintrages nicht erwünscht sein, oder sogar zu Fehlern führen. Das hängt oft davon ab, was der Menüeintrag bei Anklick eigentlich bewirken soll, wo wir uns im Workbook gerade befinden uvm.
Wer hat sich an dieser Stelle nicht oft gewünscht, einen Menüeintrag in Abhängigkeit der Situation zu deaktivieren, gerade genau so, wie Excel es selber macht?
Die beiden Makros unten aktivieren/deaktivieren ein Untermenü, wenn ein bestimmtes Worksheet aktiviert/deaktiviert wird. Sie sind ereignisorientiert und gehören in das Codefenster des entsprechenden Worksheets.
Selbstverständlich musste das Menü vorher irgendwann erzeugt worden sein. Wie das geht, siehe: Menüs programmieren. Fehlt das Menü, kommt "On Error" zum Zuge.

Private Sub Worksheet_Activate()
Dim cbSpecialMenu As CommandBarPopup
Dim UMenu As CommandBarPopup
On Error Resume Next
Set cbSpecialMenu = _
Application.CommandBars("Worksheet Menu " & _
"Bar").Controls("Spezialmenü")
Set UMenu = _
cbSpecialMenu.Controls("SpezialUntermenü")
UMenu.Enabled = True
End Sub

Private Sub Worksheet_Deactivate()
Dim cbSpecialMenu As CommandBarPopup
Dim UMenu As CommandBarPopup
On Error Resume Next
Set cbSpecialMenu = _
Application.CommandBars("Worksheet Menu " & _
"Bar").Controls("Spezialmenü")
Set UMenu = _
cbSpecialMenu.Controls("SpezialUntermenü")
UMenu.Enabled = False
End Sub
Die Excel Wühlkiste
Valid HTML 4.01 Strict
letzte Aktualisierung: 13.02.2009
Autor: Hubert Scheidgen / 04.02.2009
W3C CSS-Validierungsservice