Clever-Excel-Forum

Normale Version: Kontrollkästchen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Tag

In der Zelle B20 hab ich vier Kontrollkästchen. Diese möchte ich,
solange in der Zelle I12 der Wert 0.000 steht ausblenden. Wie
mache ich dies? Ich habe in der Zelle B6 und B7 noch zwei weitere
Kontrollkästchen, welche nicht ausgeblendet werden sollen.

Ps.: Ich habe absolut keine Erfahrung mit Makros, wäre also dankbar
um eine detailierte Schritt für Schritt Anleitung.

Besten Dank für eure Unterstützung!

Gruss
Nigg
Hi Nigg,

schau mal in diesen Link. Das Thema scheint genau dein Problem betreffen.
Hallo Nigg,

ich habe das Makro mal auf Deine Bedürfnisse angepasst. Es setzt die Kästchen 4 bis 7 sichtbar, wenn Du in I12 0 einträgst, und unsichtbar, wenn Du etwas anderes reinschreibst. Das Makro fügst Du in das Tabellenblattmodul von Fert 1 ein. Dazu wechselst Du mit ALT + F11 in den VBA-Editor. Dort siehst Du auf der linken Seite den Projektexplorer, in dem u.a. Deine Datei steht. Sollte diese nicht "aufgeklappt" sein kannst Du darauf doppeklicken und siehst dann die einzelnen Bestandteile, z.B.
Tabelle1 (Fert 1). Auf diese klickst Du wieder und daz zugehörige Modulblatt geht auf. Kontrollieren kannst Du das in der Titelzeile, dort sollte unter anderem Tabelle1 (code) stehen. Dort fügst Du den code dann ein.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'Variablendeklarationen
'Boolsch - Trigger fuer Anzeige
Dim bVisible As Boolean
'Wenn die Zieladresse nicht I12 ist, dann Makro verlassen
If Target.Address <> "$I$12" Then Exit Sub
'Trigger fuer Anzeige auf True setzen, wenn I12 0 ist
bVisible = (Target.Value = 0)
'Schleife ueber die Kontrollkaestchen 4 bis 7
For icnt = 4 To 7
  'Kontrollkaestchen ein/ausblenden
  ActiveSheet.Shapes("Kontrollkästchen " & icnt).Visible = bVisible
'Ende Schleife ueber die Kontrollkaestchen 4 bis 7
Next
End Sub
Hallo Nigg,

da in I12 ja eine Formel steht, ist Andrés Makro nicht unbedingt zielführend.
Mein Vorschlag ist folgendes Makro, das in dasselbe Modul kommt:

Code:
Private Sub Worksheet_Calculate()
 If Range("I12").Value = 0 Then
   Me.CheckBoxes("Check Box 4").Visible = False
   Me.CheckBoxes("Check Box 5").Visible = False
   Me.CheckBoxes("Check Box 6").Visible = False
   Me.CheckBoxes("Check Box 7").Visible = False
   Me.CheckBoxes("Check Box 4").Value = False
   Me.CheckBoxes("Check Box 5").Value = False
   Me.CheckBoxes("Check Box 6").Value = False
   Me.CheckBoxes("Check Box 7").Value = False
 Else
   Me.CheckBoxes("Check Box 4").Visible = True
   Me.CheckBoxes("Check Box 5").Visible = True
   Me.CheckBoxes("Check Box 6").Visible = True
   Me.CheckBoxes("Check Box 7").Visible = True
 End If
End Sub

Gruß Uwe
Hallo Uwe,

ja, so ist es. Allerdings sollten die Werte doch nicht zurückgesetzt werden ? Das Ausblenden geschieht ja auch unabhängig vom Inhalt - Eventuell sollte man die dann nur ausblenden, wenn sie angehakt sind. Mal sehen, was Nigg dazu schreibt.

Hier mal mein korrigierter Ansatz:

Code:
Private Sub Worksheet_Calculate()
'Schleife ueber die Kontrollkaestchen 4 bis 7
For icnt = 4 To 7
  'Kontrollkaestchen ein/ausblenden
  ActiveSheet.Shapes("Kontrollkästchen " & icnt).Visible = (Range("I12").Value = 0)
'Ende Schleife ueber die Kontrollkaestchen 4 bis 7
Next
End Sub
Guten Tag Zusammen

Besten Dank vielmals für eure Unterstützung, mit dem Makro von Uwe funktioniert dies, genau wie gewüscht.
Wünsche euch noch ein schönes Wochenende!

Gruss
Nigg