Michael hat ein Formularsteuerelement (ein Kontrollkästchen), das mit Zelle A1 verknüpft ist. Er kann eine Formel in Zelle A1 einfügen, die in Wahr oder Falsch aufgelöst wird, und das Kontrollkästchen gibt dieses Ergebnis wieder. Wenn jedoch jemand auf das Kontrollkästchen klickt, um es zu ändern, wird die Formel in Zelle A1 durch ein explizites Richtig oder Falsch überschrieben. Michael benötigt die Formel in Zelle A1, um das Kontrollkästchen zu steuern, aber er muss auch in der Lage sein, das Kontrollkästchen umzuschalten, ohne die Formel zu überschreiben. Er fragt sich, ob das möglich ist.

Kurz gesagt ist dies nicht möglich. Microsoft beabsichtigte Kontrollkästchen, um den Wert in einer Zelle zu steuern. Anschließend können Sie diese Zelle in anderen Formeln referenzieren. Sie wollten niemals, dass die verknüpften Zellen Formeln enthalten.

Wenn Sie möchten, können Sie auch versuchen, ein Makro zu erstellen, das eine Zelle überwacht und bei Änderungen eine andere Zelle aktualisiert. Sie können Ihr Kontrollkästchen beispielsweise an eine andere Zelle (z. B. Zelle B1) binden, sodass die Formel in Zelle A1 bei Verwendung des Kontrollkästchens nicht beeinflusst wird. Anschließend erstellen Sie ein Event-Handler-Makro, das untersucht, was sich in Zelle A1 befindet. Wenn es sich ändert, ändert das Makro das, was sich in Zelle B1 befindet. Diese Änderung in Zelle B1 löst dann die Änderung im Kontrollkästchen aus.

Ein anderer makrobasierter Ansatz besteht darin, ein Makro zu verwenden, um eine Formel in Zelle A1 zu schreiben. Dies ist ein einfaches Beispiel für ein solches Makro:

Sub CheckBoxState()

Range("A1").Formula = "=IF(" & Range("A1") & _       ",""CHECKED"",""NOT CHECKED"")"

End Sub

Wenn Sie dieses Makro dem Kontrollkästchen-Steuerelement zuweisen, passieren zwei Dinge, wenn eine Person auf das Kontrollkästchen klickt. Zunächst wird der Status des Kontrollkästchens in die Zelle A1 geschrieben, wobei alles, was vorhanden ist, überschrieben wird. Zweitens wird das Makro ausgeführt und die Formel zurück in Zelle A1 geschrieben. Beachten Sie, dass die Formel (wie in diesem Makro definiert) den Wert berücksichtigt, der gerade in Zelle A1 gespeichert wurde. Wenn das Kontrollkästchen True in die Zelle A1 schreibt, fügt das Makro Folgendes in die Zelle ein:

=IF(TRUE,"CHECKED","NOT CHECKED")

Aktivieren Sie das Kontrollkästchen erneut, der in die Zelle eingegebene Wert ändert sich in False, und die in die Zelle eingefügte Formel ändert sich. Natürlich müssten Sie das Makro so ändern, dass die Formel, die es in Zelle A1 erzwingt, die Formel widerspiegelt, die Sie dort wirklich wollen.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (113) gilt für Microsoft Excel 2007, 2010, 2013 und 2016.