Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zellen sperren wenn in einer Zelle ein bestimmter Text steht
#1
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
Antworten Top
#2
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.
Schöne Grüße
Berni
Antworten Top
#3
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?
Antworten Top
#4
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.
Antworten Top
#5
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....


Angehängte Dateien
.xlsm   Beispiel.xlsm (Größe: 14,55 KB / Downloads: 5)
Antworten Top
#6
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.


Angehängte Dateien
.xlsm   Beispiel - Rabe.xlsm (Größe: 16,91 KB / Downloads: 7)
Antworten Top
#7
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.
Antworten Top
#8
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.
Antworten Top
#9
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste