es gibt da verschiedene Wege das umzusetzen. Hier ein Makro das alle Controls des Blattes prüft, die im Namen "Check Box" stehen haben und einen Button "Button 5" ein- oder ausblendet. In Unkenntnis deiner wirklichen Blattinhalte birgt das natürlich die Gefahr noch Seitenefekte zu erzeugen.
Das Makro sollte in einem Allgemeinen Codemodul eingefügt werden und allen Checkboxen als Makro zugewiesen werden.
Man kann auch die Zellverknüpfungen prüfen, doch eine Änderung der verknüpften Zellwerte wird von VBA nicht erkannt. Somit gibt es für eine automatische Reaktion keinen Auslöser.
Sub Kontrollkästchen1_Klicken()
Dim bVisible As Boolean
Dim actControl As Shape
bVisible = True
'Schleife durch alle Controls im aktiven Arbeitsblatt
For Each actControl In ActiveSheet.Shapes
'wenn der Controlname mit "Check Box" beginnt
If actControl.Name Like "Check Box*" Then
'Wenn der Wert des Controls 1 = aktiv ist
If Not actControl.OLEFormat.Object.Value = 1 Then
'Hilfsvariable auf falsch setzen
bVisible = False
'Schleife abbrechen
Exit For
End If
End If
Next
'Button sichtbar oder nicht
ActiveSheet.Shapes("Button 5").Visible = bVisible
End Sub
|