Zellen für eine einmalige Eingabe beschränken

In diesem Beispiel zeigen wir Ihnen, wie Sie eine Zelle beziehungsweise einen Zellbereich für eine einmalige Eingabe von Text oder Zahlen beschränken können.

In diesem Beispiel soll der Zellbereich B3:E9 entsprechend eingeschränkt werden. Um dies zu realisieren sind wenige Zeilen VBA-Code notwendig, siehe Listing. Fügen Sie diesen Code bitte in das Code-Modul des zu schützenden Tabellenblatts ein.

 

Private Sub Worksheet_Change(ByVal Target As Range)
'** In die aktive Zelle darf einmalig ein Wert erfasst werden

'** Blattschutz aufheben
ActiveSheet.Unprotect

'** Die Beschränkung auf den Zellbereich B3 bis E9 herstellen
If Not Application.Intersect(Target, Range("B3:E9")) Is Nothing Then
    ActiveCell.Locked = True
End If

'** Blattschutz aktivieren
ActiveSheet.Protect

End Sub

So funktioniert der Code:

  1. Da sich der Code auf dem Modul-Blatt des relevanten Tabellenblatts befindet wird das Ereignis Worksheet_Change bei jeder Änderung einer Zelle ausgeführt.
  2. Dabei wird zuerst der Blattschutz wird aufgehoben (im Beispiel ohne Passwort)
  3. Über den Befehl Intersect erfolgt die Beschränkung auf den Bereich B3 bis E9, so dass sich Änderungen nur in diesem Zellbereich auswirken.
  4. Erfolgt eine Eingabe in diesem Zellbereich wird die veränderte Zelle geschützt, so dass durch das Setzen des Blattschutzes im Anschluss die einmal geänderte Zelle nicht noch einmal geändert werden kann.

 Die Beispieldatei können Sie über den folgenden Link herunterladen.