Clever-Excel-Forum

Normale Version: Kontrollkästchen ausblenden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen, 

ich habe eine für Euch sicherlich sehr einfache Frage:

Ich habe in Zelle J13 einen Zellwert.
Dazu habe ich vier Kontrollkästchen, welche ich ausblenden möchte, wenn J13 leer ist. Wenn J13 den Wert "gesondert berechnen:" erhält, möchte ich, dass die Kontrollkästchen sichtbar sind.

Die Kontrollkästchen heißen: Kontrollkästchen187Kontrollkästchen188, Kontrollkästchen189, Kontrollkästchen190


Ich habe es hiermit für das erste Kästchen versucht:

Private Sub Worksheet_Change(ByVal Target As Range)
If Cells(13, 9).Value = "gesondert berechnen:" Then
CheckBox187.Visible = True
Else
CheckBox187.Visible = False
End If
End Sub


Leider funktioniert das nicht. Hat jemand von Euch einen Tipp für mich ?

Vielen Dank vorab Smile
Moin!
Ungetestet (achte auf die Leerzeichen!):

Me.Shapes("Check Box 187").Visible = msoFalse

Außerdem solltest Du in einem Worksheet_Change immer das Target auswerten.

Gruß Ralf
Hallo,

(17.11.2020, 08:36)maz911 schrieb: [ -> ]Leider funktioniert das nicht.

na denn, noch ein Puzzlestück: J13 wäre Cells(13, 10)

Gruß Uwe
Ich danke Euch vielmals für die Hilfe!

Die Mischung aus den Tipps von Kuwer (Uwe), RPP63(Ralf) hat geholfen Smile

Zum Thema Target auswerten muss ich mich nochmal belesen - das sagt mir im Moment noch nicht so viel..

Nochmals vielen Dank für die schnelle Hilfe!
Hallo zusammen, 

kurze Frage noch: Nun verschwinden die Kästchen immer erst dann, wenn ich irgendwo anders eine Änderung vornehme (Doppelklick in ein Feld oder in irgendeine Zelle etwas eintragen).
Kann ich den Code so anpassen, dass die Kästen sofort aus-/einblenden, sobald meine "If-" Kriterien erfüllt sind ?

Geht das eventuell über Worksheet_calculate ? Cell(13, 9), (27,9), (40, 2) sind alle samt verformelt.

Ich danke Euch vielmals vorab!


Mein Code lautet wie folgt:

Private Sub Worksheet_Change(ByVal Target As Range)

If Cells(13, 9).Value = "gesondert berechnen:" Then
Me.Shapes("Kontrollkästchen 187").Visible = msoTrue
Me.Shapes("Kontrollkästchen 188").Visible = msoTrue
Me.Shapes("Kontrollkästchen 189").Visible = msoTrue
Me.Shapes("Kontrollkästchen 190").Visible = msoTrue
Else
Me.Shapes("Kontrollkästchen 187").Visible = msoFalse
Me.Shapes("Kontrollkästchen 188").Visible = msoFalse
Me.Shapes("Kontrollkästchen 189").Visible = msoFalse
Me.Shapes("Kontrollkästchen 190").Visible = msoFalse
End If

If Cells(27, 9).Value = "zu Lasten:" Or Cells(27, 9).Value = "zu Gunsten:" Then
Me.Shapes("Kontrollkästchen 127").Visible = msoTrue
Me.Shapes("Kontrollkästchen 128").Visible = msoTrue
Else
Me.Shapes("Kontrollkästchen 127").Visible = msoFalse
Me.Shapes("Kontrollkästchen 128").Visible = msoFalse
End If

If Cells(40, 2).Value = "inkl. Montage ? :" Then
Me.Shapes("Kontrollkästchen 165").Visible = msoTrue
Me.Shapes("Kontrollkästchen 166").Visible = msoTrue
Else
Me.Shapes("Kontrollkästchen 165").Visible = msoFalse
Me.Shapes("Kontrollkästchen 166").Visible = msoFalse
End If

End Sub
Hallöchen,

Wenn Deine Zellen verformelt sind dann wirkt dort kein Change. Das Change wirkt, wenn Du irgendwo eine Eingabe machst. Calculate wirkt bei den Berechnungen.
Du kannst auch mal testen, in welcher Reihenfolge die Ereignisse ablaufen. Nimm mal irgendwo ein Blatt mit Formeln und die beiden Ereignisse nur jeweils mit einer MsgBox drin...