7.3k Aufrufe
Gefragt in Tabellenkalkulation von donjuandan Einsteiger_in (89 Punkte)
Hallo zusammen

Ich habe in einer Excel Datei (2007) 9 Kontrollkästchen (ActiveX). Ich möchte, dass sobald eines (oder mehrere) der ersten 8 Kontrollkästchen markiert wird, das Kästchen Nr. 9 ausgeblendet wird. Eigentlich hätte ich dies mit dem folgenden Code gelöst:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("BA10") = 1 Then
CheckBox9.Visible = False
Else
CheckBox9.Visible = True
End If
End Sub

(Sobald eines oder mehrere der Kontrollkästchen aktiviert wird, steht in der Zelle BA10 eine 1. Und sobald dort eine 1 steht, wird die CheckBox9 ausgeblendet)

Leider wird die Checkbox9 nicht sofort ausgeblendet. Sondern erst wenn ich irgendwo anders hinklicke. (Ich aktiviere das erste Kontrollkästchen, die Checkbox9 ist noch sichtbar. Erst sobald ich eine weitere Checkbox aktiviere oder irgendwo ausserhalb der Checkboxen hinklicke, verschwindet die CheckBox9.)

Wie kann ich machen, dass Excel sofort reagiert?

Falls dies nicht möglich ist: Mit welchem Code, kann ich machen, dass die Kontrollkästchen 1-8 demarkiert werden, sobald das Kontrollkästchen 9 markiert wird?

Liebe Grüsse
donjuandan

6 Antworten

0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi,

verwende nicht das SelectionChange Ereignis sondern das Change Ereignis:
Private Sub Worksheet_Change(ByVal Target As Range)
CheckBox9.Visible = Range("A1") = ""
End Sub

Bis später,
Karin
0 Punkte
Beantwortet von donjuandan Einsteiger_in (89 Punkte)
Hallo Karin

Danke für Deine Antwort. Hat leider jedoch nicht funktioniert :-(

In der Zelle, auf welche sich der Code bezieht, ist bei mir eine Formel drin. Kann es sein, dass es aus diesem Grund nicht funktioniert? Falls ja, kannst Du den Code so abändern, dass die Checkbox ausgeblendet wird, sobald in der Zelle eine 1 steht?

Vielen Dank.

Liebe Grüsse
donjuandan
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi,

das SelectionChange Ereignis reagiert auf das Selektieren (Markieren) einer Zelle, das Change Ereignis auf eine direkte Eingabe. Wenn sich das Ergebnis aus einer Formel ergibt, dann verwende das Calculate Ereignis des Tabellenblattes.

Bis später,
Karin
0 Punkte
Beantwortet von donjuandan Einsteiger_in (89 Punkte)
Ich kenne mich leider mit VBA zuwenig aus. Kannst Du mir bitte sagen wie ich den untenstehnden Code entsprechend abändern muss? Habe es probiert aber es hat wieder nicht funktioniert.


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("BA10") = 1 Then
CheckBox9.Visible = False
Else
CheckBox9.Visible = True
End If
End Sub



Vielen Dank.
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi,

lies dir Antwort 3 bitte genau durch - dein Code kann nicht funktionieren, da beim Berechnen einer Formel nichts selektiert (markiert) wird. Die Codezeile, die ich in Antwort 1 gepostet habe, musst du ins Worksheet_Calculate Ereignis schreiben. Ersetze außerdem natürlich A1 durch deine Zelladresse, also BA10.

Bis später,
Karin
0 Punkte
Beantwortet von donjuandan Einsteiger_in (89 Punkte)
Vielen Dank. Mein Problem ist gelöst :-)
...