Zellen in Excel sperren, wenn eine Bedingung erfüllt ist
Schritt-für-Schritt-Anleitung
Um Zellen in Excel zu sperren, wenn eine bestimmte Bedingung erfüllt ist, kannst du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Anleitung:
-
VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.
-
Das entsprechende Arbeitsblatt auswählen: Klicke im Projekt-Explorer auf das Arbeitsblatt, für das du die Zellen sperren möchtest.
-
Code einfügen: Füge den folgenden Code in das Codefenster ein:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B1:B50")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
Select Case Target.Value
Case 1
Range(Cells(Target.Row, 8), Cells(Target.Row, 17)).Locked = True
Case 2
Range(Cells(Target.Row, 8), Cells(Target.Row, 17)).Locked = False
Range(Cells(Target.Row, 13), Cells(Target.Row, 17)).Locked = True
Case 3
Range(Cells(Target.Row, 8), Cells(Target.Row, 17)).Locked = False
Case Else
End Select
End If
End Sub
-
Blattschutz aktivieren: Um sicherzustellen, dass die Sperrung funktioniert, musst du das Blatt schützen. Füge diesen Code in das Modul "DieseArbeitsmappe" ein:
Private Sub Workbook_Open()
With Sheets("DeineTabelle")
.Unprotect Password:="passwort"
.Protect Password:="passwort", UserInterfaceOnly:=True
End With
End Sub
-
Speichern und testen: Schließe den VBA-Editor, speichere die Datei als xlsm (Makro-fähige Arbeitsmappe) und teste die Funktionsweise.
Häufige Fehler und Lösungen
Fehler 1: Laufzeitfehler '1004'
- Ursache: Du hast das Blatt nicht geschützt.
- Lösung: Stelle sicher, dass der Blattschutz aktiviert ist, indem du den oben genannten Code verwendest.
Fehler 2: Zellen werden nicht gesperrt
- Ursache: Event-Handler funktioniert nicht.
- Lösung: Vergewissere dich, dass der Code im richtigen Arbeitsblatt-Modul eingefügt wurde.
Alternative Methoden
Wenn du keine VBA-Makros verwenden möchtest, kannst du auch die bedingte Formatierung nutzen, um Zellen auszugrauen. Dies ist jedoch keine echte Sperrung:
- Wähle die Zellen aus, die du formatieren möchtest.
- Gehe zu Start > Bedingte Formatierung > Neue Regel.
- Wähle Formel zur Ermittlung der zu formatierenden Zellen verwenden und gib eine Formel ein, die auf die Bedingung basiert (z.B.
=$B1=1).
- Setze die Formatierung auf ausgrauen.
Praktische Beispiele
- Wenn in Zelle B1 die Zahl 1 eingegeben wird, werden die Zellen H1 bis Q1 gesperrt.
- Bei Eingabe von 2 werden die Zellen M1 bis Q1 gesperrt, während H1 bis Q1 entsperrt bleiben.
Diese Logik kann auf die Zeilen bis B50 und H50-Q50 erweitert werden, indem du die oben genannten Codes anpasst.
Tipps für Profis
- Nutze die Funktion
UserInterfaceOnly beim Schutz des Blattes, um sicherzustellen, dass der VBA-Code weiterhin funktioniert, auch wenn das Blatt geschützt ist.
- Teste den Code immer in einer Kopie deiner Datei, um Fehler zu vermeiden.
FAQ: Häufige Fragen
1. Wie kann ich die Zellen sperren, wenn eine Bedingung erfüllt ist, ohne VBA zu verwenden?
Du kannst die bedingte Formatierung verwenden, um Zellen visuell zu markieren, aber eine echte Sperrung erfordert VBA.
2. Funktioniert dieser Code in Excel 2016?
Ja, der Code funktioniert in Excel 2016 sowie in neueren Versionen, die VBA unterstützen.
3. Was mache ich, wenn ich mehrere Bedingungen hinzufügen möchte?
Erweitere einfach den Select Case-Block im Code, um zusätzliche Bedingungen zu berücksichtigen.
4. Wie kann ich den Blattschutz aufheben?
Verwende den VBA-Befehl .Unprotect Password:="dein_passwort" im Code.