Clever-Excel-Forum

Normale Version: Zellen sperren wenn in einer Zelle ein bestimmter Text steht
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe eine Frage bzgl. einer Möglichkeit wie ich bestimmte Zellen sperren kann.

Es liegt folgender Fall vor: (Datei befindet sich im Anhang.)

Ich habe ein Formular, in der bestimmte Zellen nach Auswahl einer Formatvorlage gesperrt bzw. auch die Farbe geändert werden soll.
Das mit der Farbe habe ich soweit auch über die bedingte Formatierung hinbekommen.

Wenn anhand des Beispiels (Anhang) das Formular Word ausgewählt ist, soll der Bereich C7:G8 weiterhin beschreibbar bleiben und der andere Bereich gesperrt werden. Wenn jetzt als Formular "Excel" ausgewählt wurde, soll der Bereich C7:E8 und C11:G12 gesperrt werden und G7:G8 weiterhin beschreibbar bleiben.

Habe es mit einer Gültigkeitsprüfung versucht, das funktioniert aber leider nicht....

Könnt ihr mir helfen?

Gruß

Sven
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("D5")) Is Nothing Then
   With ActiveSheet
       .Unprotect
       If .Range("D5") = "Word" Then
           .Range("C7:G8").Locked = False
       ElseIf .Range("D5") = "Excel" Then
           .Range("C7:G8").Locked = True
           .Range("C11:G12").Locked = True
       End If
       .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
   End With
End If

End Sub

Zelle D5 darf natürlich nicht geschützt sein.
Ich habe den Code in den Entwurfsmodus eingefügt. Er zeigt mir aber jetzt gar kein Makro an. Kann ich den Code nicht einfach 1:1 übernehmen?
Hi,

wo hast du ihn eingefügt? Er gehört in das Modul der zu sperrenden Tabelle und startet automatisch bei Änderungen in Zelle D5.
Ich habe es ganz normal im Visual Basic --> Objekte --> Tabelle 1 eingetragen.

Bei mir sagt Excel: Haltepunkt in dieser Zeile nicht zulässig.

Und dann zeigt mir Excel, wenn ich das Dropdownmenü auf "Excel" gestellt habe, dass das Arbeitsblatt komplett gesperrt ist....
Hi,

wie schon geschrieben wurde:

(30.11.2018, 13:38)MisterBurns schrieb: [ -> ]Zelle D5 darf natürlich nicht geschützt sein.

Dann geht es. Bei Excel wird der Bereich gesperrt, bei Word nicht.
Hallo Rabe,

für "Word" sind die Bereiche wie gewünscht gesperrt... wenn ich jedoch auf Excel umschalte sind alle Zellen gesperrt. Es soll jedoch der Bereich G7:G12, wenn Excel ausgewählt ist, weiterhin beschreibbar bleiben.
Hi,

im Code wird explicit der Bereich C7:G8 gesperrt, also können G7 und G8 nicht beschreibbar sein. Am Bereich C9:G10 wird gar nichts verändert, bei beiden Begriffen. Und G11:G12 wird wieder gesperrt.
Du mußt jeden Bereich einzeln entsprechend programmieren!

Daher
Code:
If .Range("D5") = "Word" Then
           .Range("C7:G8").Locked = False
       ElseIf .Range("D5") = "Excel" Then
           .Range("C7:F8").Locked = True
           .Range("G7:G12").Locked = False
           .Range("C11:F12").Locked = True
       End If

Dies muß für den Bereich Word auch nochmal angepasst werden.
Hallöchen,

Zitat:Bei mir sagt Excel: Haltepunkt in dieser Zeile nicht zulässig.

da gibt es einige, wo das nicht geht, z.B. Zeilen in denen Variable oder Konstanten deklariert werden oder Kommentarzeilen ..

In dem Fall einfach mal die nächste Zeile wo echt was zu tun ist nehmen Smile