Tutorial: Zellen sperren und ausgrauen basierend auf Zellwerten oder Dropdown-Auswahl
Hier ist ein ausführliches Tutorial, wie du in Excel Zellen basierend auf einem Wert (z. B. aus einer Dropdown-Liste) sowohl optisch ausgraust als auch technisch sperrst.
In Excel gibt es zwei Wege, dies zu erreichen:
- Die einfache Methode (ohne VBA): Zellen werden ausgegraut und die Dateneingabe wird über die „Datenüberprüfung“ verhindert.
- Die Profi-Methode (mit VBA): Zellen werden tatsächlich gesperrt, sodass sie nicht einmal angeklickt/bearbeitet werden können.
Methode 1: Die "Light"-Variante (Ohne Makros/VBA)
Diese Methode nutzt die Bedingte Formatierung (zum Ausgrauen) und die Datenüberprüfung (um Eingaben zu verhindern).
Schritt 1: Vorbereitung (Zellen entsperren)
Standardmäßig sind alle Zellen in Excel "gesperrt", was aber erst wirkt, wenn das Blatt geschützt ist.
- Markiere das gesamte Arbeitsblatt (Strg + A).
- Rechtsklick -> Zellen formatieren -> Reiter Schutz.
- Deaktiviere den Haken bei Gesperrt. Klicke OK.
Schritt 2: Zellen optisch ausgrauen (Bedingte Formatierung)
Angenommen, wenn in Zelle A2 der Wert "Inaktiv" steht, sollen die Zellen B2 bis D2 ausgegraut werden.
- Markiere die Zellen B2:D2.
- Gehe zu Start -> Bedingte Formatierung -> Neue Regel.
- Wähle: Formel zur Ermittlung der zu formatierenden Zellen verwenden.
- Gib folgende Formel ein:
=$A$2="Inaktiv" - Klicke auf Formatieren -> Reiter Ausfüllen (Graue Farbe wählen) und Reiter Schrift (Hellgraue Farbe wählen).
- Bestätige mit OK.
Schritt 3: Eingabe verhindern (Datenüberprüfung)
Damit man in die grauen Zellen nichts mehr schreiben kann:
- Markiere wieder B2:D2.
- Gehe zu Daten -> Datenüberprüfung.
- Wähle unter "Zulassen": Benutzerdefiniert.
- Gib die Formel ein:
=$A$2<>"Inaktiv"(Das bedeutet: Eingabe nur erlaubt, wenn A2 NICHT "Inaktiv" ist). - (Optional) Gehe zum Reiter Fehlermeldung und gib einen Text ein wie: "Diese Zelle ist gesperrt!"
- Bestätige mit OK.
Methode 2: Die Profi-Variante (Mit VBA-Makro)
Nur mit VBA lassen sich Zellen wirklich "hart" sperren (Protection), sobald ein Wert ausgewählt wird.
Schritt 1: Den VBA-Editor öffnen
- Drücke
ALT + F11, um den VBA-Editor zu öffnen. - Doppelklicke im linken Projekt-Explorer auf das Tabellenblatt, in dem die Sperre aktiv sein soll (z. B. "Tabelle1").
Schritt 2: Den Code einfügen
Kopiere den folgenden Code in das Fenster. In diesem Beispiel überwachen wir Zelle A2. Wenn dort "Abgeschlossen" steht, werden die Zellen B2 bis E2 gesperrt.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim BereichZumSperren As Range
Set BereichZumSperren = Range("B2:E2") 'Diese Zellen sollen gesperrt werden
'Prüfen, ob die Änderung in der Dropdown-Zelle (A2) erfolgte
If Not Intersect(Target, Range("A2")) Is Nothing Then
'Blattschutz kurz aufheben (falls ein Passwort vergeben wurde, hier ergänzen)
Me.Unprotect Password:=""
If Target.Value = "Abgeschlossen" Then
'Zellen ausgrauen und sperren
BereichZumSperren.Locked = True
BereichZumSperren.Interior.Color = RGB(200, 200, 200) 'Grau
BereichZumSperren.Font.Color = RGB(128, 128, 128) 'Dunkelgraue Schrift
Else
'Zellen wieder freigeben
BereichZumSperren.Locked = False
BereichZumSperren.Interior.ColorIndex = xlNone 'Keine Füllung
BereichZumSperren.Font.ColorIndex = xlAutomatic 'Standard-Schrift
End If
'Blattschutz wieder aktivieren
Me.Protect Password:=""
End If
End Sub
Schritt 3: Datei speichern
Da die Datei nun ein Makro enthält, musst du sie als Excel-Arbeitsmappe mit Makros (.xlsm) speichern.
Zusammenfassung: Welche Methode soll ich wählen?
| Feature | Methode 1 (Bedingte Form.) | Methode 2 (VBA) |
|---|---|---|
| Schwierigkeit | Einfach | Mittel |
| Zellen sperren | "Soft" (Eingabe blockiert) | "Hard" (Zelle schreibgeschützt) |
| Optik | Automatisch grau | Über Code definiert |
| Makros nötig? | Nein | Ja |
| Kompatibilität | Funktioniert überall (auch Web) | Nur Desktop-Excel |
Tipp für die Dropdown-Liste:
Erstelle die Dropdown-Liste in Zelle A2 über Daten -> Datenüberprüfung -> Liste und gib dort deine Werte ein (z. B. Aktiv;Inaktiv;Abgeschlossen). So verhinderst du Tippfehler, die die Formeln oder das Makro unwirksam machen würden.