Bedingte Formatierung Excel durch Checkbox?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Mit Checkboxen funktioniert das in Excel nicht so gut. Aber ein "x" ist eigentlich ziemlich einfach.

Ich gehe mal davon aus, dass die Überschriften in den Zellen A1 bis F1 stehen und die bedingte Formatierung ab Zeile 2 starten soll. In die Spalte F sollen dann die "x" stehen.

  1. Markiere die Zellen A2 bis F100
  2. Klicke auf "Bedingte Formatierung" > "Neue Regel..."
  3. Nimm die unterste Option (Formel zur Ermittlung der zu formatierenden Zellen verwenden)
  4. Trage diese Formel ein: =$F2<>""
  5. Klicke auf "Formatieren..."
  6. Such dir das Format aus (in deinem Fall gehst du oben auf die Registerkarte "Ausfüllen" und suchst dir den Grünton aus, der dir am besten gefällt)
  7. Klicke auf OK

Eigentlich sind das wirklich Basics , die man sogar als gewöhnliche Bürokraft beherrschen sollte.

daCypher  02.08.2023, 12:29

Falls du das ganze trotzdem lieber mit Checkboxen haben willst, hab ich dir mal ein paar VBA-Schnipsel gebastelt. Bei Excel kann man leider nicht sagen, dass bestimmte Zellen Checkboxen sein sollen, sondern man kann Checkboxen einfach frei auf der Tabelle positionieren und in den Eigenschaften einstellen, mit welcher Zelle sie verknüpft sein sollen.

Das ist leider für 100 Checkboxen ziemlich viel Fummelkram, daher hier der Code, um für alle Zellen im Bereich F2:F100 eine Checkbox zu generieren:

Sub Checkboxes()
    Dim i As Integer
    Dim cb As CheckBox
    For i = 2 To 100
        Set cb = ActiveSheet.Checkboxes.Add(300, (i - 1) * 15, 15, 15)
        cb.Caption = ""
        cb.LinkedCell = "$F$" & i
    Next i
End Sub

Mit der 300 (Position vom linken Rand aus) und der ersten 15 (Position vom oberen Rand aus) musst du evtl. etwas rumprobieren, damit es bei dir passt.

Hier ist noch ein Code, um alle Checkboxen zu löschen, falls du es nochmal probieren willst:

Sub Delete_Checkboxes()
    Dim i As Integer
    
    For i = ActiveSheet.Shapes.Count To 1 Step -1
        ActiveSheet.Shapes(i).Delete
    Next i
End Sub

Die Checkboxen schreiben automatisch in die Zellen von Spalte F "WAHR" oder "FALSCH" rein, daher ist die Formel für die bedingte Formatierung dann nur noch =$F2

Wenn die Wörter "WAHR" und "FALSCH" unsichtbar sein sollen, stelle am Besten für die Spalte die gleiche Textfarbe, wie die Hintergrundfarbe ein. Natürlich auch bei der bedingten Formatierung.

2
daCypher  03.08.2023, 10:08
@realsausi2

Ja, der Code aus dem Link macht mehr. Der gibt noch Meldungen aus, lässt dich den Bereich auswählen, wo die Checkboxen erscheinen sollen, passt die Größe der Zellen an, damit die Checkboxen auch alle am richtigen Platz sind und ändert die Hintergrundfarbe der Zellen per VBA-Code statt per bedingter Formatierung.

Mein Code erstellt halt einfach stumpf Checkboxen für F2 bis F100. Im Prinzip kannst du auch den Code aus dem Link nehmen, aber ich würde dir empfehlen, dass du die Hintergrundfarbe trotzdem per bedingter Formatierung einstellst. Dann kannst du die Datei nämlich ohne Makros speichern und hast dadurch keine Probleme, wenn du sie z.B. per E-Mail versenden willst.

1
realsausi2 
Fragesteller
 02.08.2023, 12:49

Unglaublich. Hat jetzt in einer neuen Tabelle funktioniert. Vielen Dank.

Was ich nicht verstehe, und was wohl zu unserem Problem geführt hat, ist, dass in der Formel ja nur eine Zelle referenziert wird, die Funktion aber auf alle markierten Zeilen auswirkt. Da habe ich wohl irgendein Verständnisproblem.

Tatsächlich war unser Ansatz, das für eine Zeile einzustellen und dann die Formatierung auf die folgenden Zeilen zu kopieren.

Manchmal ist man halt vernagelt. Ich habe vor 30 Jahren schon wesentlich komplexere Aufgaben mit Excel gelöst.

Wieder was gelernt.

Vielen Dank dafür.

0
realsausi2 
Fragesteller
 02.08.2023, 13:01
@realsausi2

Das war vorhin. Und wieder klappt es alles nicht. Das ist echt kurios.

Ich hatte in meinem Beispiel in der Frage versäumt, die erste Spalte mitzukopieren. Hier muss der Name des Gastes hin.

Nun dachte ich, einfach Spalte einfügen und in der Formel aus dem "f" ein "g" machen. Aber wenn ich das mache, bekomme ich völlig inkonsistente Ergebnis. Mal wird gar nichts markiert, mal eine Zeile höher, mal zwei Zeilen auf einmal. Mal bleibt die erste Spalte unmarkiert. Mal findet das statt, wenn ich das in in Spalte G eintrage, manchmal aber auch, wenn ich sie in Spalte F eintrage. Jedesmal in einer völlig neuen Datei.

Da stimmt doch was nicht.

Bei gleicher Vorgehensweise unterschiedliche Ergebnisse.

0
realsausi2 
Fragesteller
 02.08.2023, 13:03
@realsausi2

Und auch hier war das Problem wieder vor dem Rechner.

Ich habe immer die Spalte, in der das X eingetragen werden soll, nicht mit in die Markierung genommen. Nun funzt es wie gewünscht.

Vielen Dank für Deine Mühe.

Das mit den Checkboxen werden ich später mal antesten.

0
daCypher  02.08.2023, 13:09
@realsausi2

Ja, die Formel musst du dir so vorstellen, wie eine gewöhnliche Zellenformel, nur dass sie automatisch auf alle ausgewählten Zellen erweitert wird. Also $F, weil immer die Spalte F benutzt werden soll, aber bei der 2 kein Dollar, weil die beim ausfüllen nach unten natürlich automatisch an die jeweilige Zeile angepasst werden soll

1
realsausi2 
Fragesteller
 02.08.2023, 13:11
@daCypher

Das ist mir tatsächlich eine neues Verständnis davon, wie relative und absolute Bezüge definiert werden können. Sehr interessant.

0
daCypher  02.08.2023, 13:14
@realsausi2

Hmm, das hört sich so an, als wenn mehrere bedingte Formatierungen gleichzeitig aktiv sind. Du kannst mal auf das Menu "Bedingte Formatierungen" > "Regeln verwalten" gehen. Da gibt es oben ein Dropdown, wo "Aktuelle Auswahl" drinsteht. Da kannst du nach "Dieses Arbeitsblatt" wechseln. Für den Bereich A2:F100 (oder A2:G100) sollte es dort nur eine Formel geben. Falls es mehrere gibt, müssen die falschen raus und du kannst bei der funktionierenden Formatierung in das Feld "Wird angewendet auf" den Bereich eintragen, für den die Formatierung gelten soll.

1
daCypher  02.08.2023, 13:16
@realsausi2

PS: Entschuldigung für das Durcheinander, die Antworten auf Kommentare werden hier einfach unten angehängt, anstatt unter den Kommentar zu kommen, für den sie gedacht sind

1
realsausi2 
Fragesteller
 02.08.2023, 15:04
@daCypher

Alles gut. Inzwischen funzt es, wie es soll.

Vielen Dank für Deine Hilfe

1