Jody ist dabei, benutzerdefinierte Symbolleistenschaltflächen zu entwickeln und den Schaltflächen Makros zuzuweisen. Sie möchte, dass die Schaltflächen immer dann aktiviert werden, wenn mindestens ein Arbeitsblatt sichtbar ist, sucht jedoch nach dem richtigen Code, um mit einer solchen Situation umzugehen.

Es gibt viele Möglichkeiten, wie dies angegangen werden kann, wie man in einer so vielfältigen Umgebung wie Excel annehmen könnte. Eine mögliche Lösung besteht darin, eine Routine zu erstellen, die einfach prüft, ob auf dem Bildschirm sichtbare Fenster vorhanden sind. Wenn dies der Fall ist, können die Symbolleistenschaltflächen aktiviert werden. Wenn dies nicht der Fall ist, können sie deaktiviert werden. Das folgende Makro macht genau das:

Sub CheckButtons()

Dim bOneOpen As Boolean     Dim I As Integer     Dim J As Integer          bOneOpen = False     For I = 1 To Workbooks.Count         For J = 1 To Workbooks(I).Windows.Count             If Workbooks(I).Windows(J).Visible Then bOneOpen = True         Next J         If bOneOpen Then Exit For     Next I     If bln Then         'enable buttons     Else         'disable buttons     End If End Sub

Beachten Sie die beiden Kommentare am unteren Rand des Makros. Sie müssen diese Kommentare lediglich durch den entsprechenden Code ersetzen, um die Symbolleistenschaltflächen zu aktivieren oder zu deaktivieren. (Der Code hängt von der Anzahl und Konfiguration Ihrer Schaltflächen ab.)

Dieses Makro kann entweder manuell oder von einem der Ereignisse aufgerufen werden, die durch Fensteränderungen ausgelöst werden, z. B. solche, die beim Öffnen, Ändern der Größe, Minimieren, Maximieren oder Wiederherstellen von Fenstern ausgelöst werden.

_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 (2618) gilt für Microsoft Excel 97, 2000, 2002 und 2003.