Bedingte Formatierung Excel durch Checkbox?
Hallo,
ich möchte eine Liste erstellen, in der ich Barzahlungen von Gästen erfasse.
Die Daten werden bei Buchung oder später eingetragen. Barzahlung kann bis zu einem Jahr später erfolgen bei Check In.
In der letzten Spalte hätte ich gerne eine Checkbox. Beim Setzen sollen alle Spalten links davon grün formatiert werden als erledigt. Ersatzweise könnte es auch mit einem speziellen Zeichen wie einem x gehen.
Ich habe schon eine Reihe von Videos ansgeschaut und Tutorials gelesen. Aber keines konnte mich zum Ziel führen.
Das ganze sollte etwa 100 Zeilen haben. Also 100 Checkboxen, von denen jede die Spalten links von ihr grün färbt.
Man sollte meinen, dass das eigentlich eine recht triviale Anforderung ist. Aber auch mit Hilfe meines Bruders, der ein hochbezahlter IT-Fachmann ist und intensiver Recherche haben wir es nicht hinbekommen.
Ist hier ein ein Excelspezialist, der den Knoten durchschlagen kann?
1 Antwort
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.
- Markiere die Zellen A2 bis F100
- Klicke auf "Bedingte Formatierung" > "Neue Regel..."
- Nimm die unterste Option (Formel zur Ermittlung der zu formatierenden Zellen verwenden)
- Trage diese Formel ein: =$F2<>""
- Klicke auf "Formatieren..."
- 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)
- Klicke auf OK
Eigentlich sind das wirklich Basics , die man sogar als gewöhnliche Bürokraft beherrschen sollte.
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.
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.
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
Das ist mir tatsächlich eine neues Verständnis davon, wie relative und absolute Bezüge definiert werden können. Sehr interessant.
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.
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
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.
Sowas ähnliches hatte ich gestern auch schon gefunden.
https://de.extendoffice.com/documents/excel/3993-excel-checkbox-highlight-cell-row.html
Mit allerdings deutlich mehr Zeilen.
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.
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.