Clever-Excel-Forum

Normale Version: Zelle nach Eingabe Automatisch sperren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe mir eine Tabelle gebaut und dort soll folgende Funktion hinterlegt sein:

Trägt jemand was in der Zelle ein, soll die Zelle gesperrt werden.

dies möchte ich mit einem Makro ermöglichen und habe mir das wie folgt geschrieben:

Private Sub Worksheet_Change(ByVal Target As Range)
Tabelle1.Unprotect "1234"
If VBA.IsEmpty(Target) Then
    Target.Locked = False
    Else
    Target.Locked = True
End If
Tabelle1.Protect "1234"

End Sub

nun ist es so, dass hier das Debug Fester erscheint mit der Meldung: Die Locked-Eigenschaft des Range-Objektes kann nicht festgelegt werden.

Wenn ich den Debugger öffne ist die Zeile Target.Locked = True gelb hinterlegt.

Was das komische ist, trage ich was in der Zelle ein erscheint die Fehlermeldung, aber wenn ich den Inhalt lösche dann wird die Zelle gesperrt.

hätte jemand einen Tipp für mich wo mein Fehler liegt ?

Danke für eure Hilfe
Hi,

kann ich nicht nachvollziehen: bei mir läuft dein Makro wie (offensichtlich) gewünscht.
Nun habe ich den Fehler selbst gefunden.

Es funktioniert nicht wenn Zellen verbunden sind.

dann wäre meine frage wie müsste ich das Makro abändern damit es auch bei verbundenen Zellen Funktioniert?
... dann hebe die Zellverknüpfung auf. Google mal nach "verbundene Zellen" und Probleme damit.
Moin,

in die Fachfrage werde ich mich mangels ausreichenden Kenntnissen nicht einmischen. Was die verbundenen Zellen anbelangt, kann ich dir aber nur raten, diese aufzulösen. Zum besseren Verständnis warum, hier etwas Lesestoff: https://www.clever-excel-forum.de/Thread...oder-Segen
Ok Aufheben wäre eine Lösung allerdings müsste ich dann das Makro auf eine Range beschränken.

A:12 bis Z:30

wäre dies möglich ?
Hi,

setze zu Beginn deines Macros:

PHP-Code:
If Application.Intersect(TargetRange("A12:Z30")) Is Nothing Then Exit Sub