Zelle sperren, wenn andere Zelle mit Inhalt
Schritt-für-Schritt-Anleitung
Um in Excel eine Zelle zu sperren, wenn eine andere Zelle beschrieben wird, kannst du VBA nutzen. Folge diesen Schritten:
-
Drücke ALT + F11
, um den VBA-Editor zu öffnen.
-
Klicke im Projektfenster auf das Arbeitsblatt, in dem du die Zellen sperren möchtest.
-
Füge folgenden Code in das Codefenster ein:
Sub ZelleSperren()
Dim wks As Worksheet, r As Range
For Each wks In Worksheets
With wks
.Unprotect
.Cells.Locked = False
For Each r In .Range(.Cells(1, 2), .Cells(Rows.Count, 2).End(xlUp))
r.Offset(, 1).Locked = r.Value <> ""
Next r
.EnableSelection = xlUnlockedCells
.Protect
End With
Next
End Sub
-
Schließe den VBA-Editor und gehe zurück zu Excel.
-
Führe das Makro aus, um die Zellen zu sperren.
Dieser Code überprüft für jede Zelle in Spalte B, ob sie beschrieben ist. Wenn ja, wird die entsprechende Zelle in Spalte C gesperrt.
Häufige Fehler und Lösungen
Alternative Methoden
Falls du keine VBA-Lösungen verwenden möchtest, kannst du auch Datenüberprüfungen nutzen, um Eingaben zu steuern. Hier ist eine einfache Methode:
- Wähle die Zelle in Spalte C aus, die du schützen möchtest.
- Gehe zu
Daten
> Datenüberprüfung
.
-
Wähle Benutzerdefiniert
aus und gib eine Formel ein, die prüft, ob die Zelle in Spalte B leer ist, z.B.:
=ISTLEER(B1)
Diese Methode verhindert jedoch nicht, dass die Zelle ausgewählt werden kann, sondern gibt nur eine Warnung aus.
Praktische Beispiele
Stellen wir uns vor, du hast ein Arbeitsblatt mit den folgenden Werten:
Nach dem Ausführen des VBA-Codes wird die Tabelle so aussehen:
B |
C |
Wert1 |
Gesperrt |
|
|
Wert2 |
Gesperrt |
|
|
Die Zellen in Spalte C sind nun gesperrt, wenn in den entsprechenden Zellen in Spalte B Werte vorhanden sind.
Tipps für Profis
- Nutze den
Worksheet_Change
-Ereignis-Trigger, um die Zellen automatisch zu sperren, sobald du einen Wert in Spalte B eingibst.
- Verwende
Application.EnableEvents = False
, um zu verhindern, dass das Makro sich selbst auslöst, während es läuft.
FAQ: Häufige Fragen
1. Kann ich das Makro auf mehrere Arbeitsblätter gleichzeitig anwenden?
Ja, der bereitgestellte Code durchläuft alle Arbeitsblätter in deiner Arbeitsmappe.
2. Was passiert, wenn ich eine Zelle in Spalte B lösche?
Wenn du eine Zelle in Spalte B leer machst, wird die entsprechende Zelle in Spalte C wieder entsperrt, wenn du das Makro erneut ausführst.
3. Ist es möglich, das Passwort für das Arbeitsblatt zu setzen?
Ja, du kannst das .Protect
-Kommando anpassen, um ein Passwort zu setzen, indem du .Protect "deinPasswort"
verwendest.
4. Funktioniert dieser Code in Excel 365?
Ja, der Code sollte in Excel 365 sowie in den meisten anderen Versionen funktionieren, die VBA unterstützen.