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.

VBA Zellen Sperren auf Blattgeschützter Tabelle
#1
Information 
Hallo,

ich habe in meinem VBA folgenden funktionierenden Code stehen:


Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Range("S22:S23").Interior.Color = 65535 Then
Range("S22:U23").Locked = False

If Range("S22:S23").Interior.Color = 255 Then
Range("S22:U23").Locked = True
Range("S22") = Range("E21")


Allerdings, wenn ich jetzt hingehe und den Blattschutz (Arbeitsblatt und Inhalt gesperrter Zellen Schützen) aktiviere bekomme ich immer folgenden Fehlercode:
[
Bild bitte so als Datei hochladen: Klick mich!
]


Ich möchte bis auf bestimmte Zellen, mein Arbeitsblatt geschützt haben. Nun habe ich ja übers VBA zusätzlich versucht einzelne Zellen "BEDINGT" zu schützen (Bedingung ist ja in diesem Fall die "FARBE" Gelb oder Rot). Der Schreibschutz darf sich wirklich nur in diesen Zellen verändern und soll nicht die anderen Schreibgeschützten oder Freigegebenen Zellen auf dem Blatt beeinflussen. Nun kommt die Frage: Was muss ich einstellen, um über das VBA nur bestimmte Zellen Schützen und Frei geben zu können?

Dies ist erstmal nur ein Versuch, ob und wie etwas derartiges möglich ist, deswegen hab ich noch keine Datei erstellt. Es muss im VBA stattfinden!


Gruß
Andi
Antworten Top
#2
Hallo Andi,

wenn Du deine Tabelle mit einem Passwort schützt kannst Du verschiedene Optionen beim Schutz auswählen (wie zum Beispiel Geschützte Zellen auswählen). Reicht das nicht?
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#3
Hallo Andi,

zeig bitte den gesamten Code in der Ereignisroutine.

Wenn Du Dich in einer nicht gesperrten Zelle befindest, sollte die Meldung nicht auftreten.

Sonst müsste theoretisch vor dieser Zeile:

Code:
Range("S22") = Range("E21")
der Blattschutz aufgehoben und danach wieder gesetzt werden.
Denn Du hast die Zelle in der Zeile davor gesperrt.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Andi_Koer_1234
Antworten Top
#4
Hallöchen,

in Anlehnung an Steffls Antwort noch der Hinweis auf die Option "Zellen formatieren" beim Blattschutz. Wenn Du dort den Haken setzt, brauchst Du zum Einfärben am Schutz nichts ändern.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Andi_Koer_1234
Antworten Top
#5
Alles erlegdigt, danke! Mein Code ist nun halt dadurch aufgebauscht, da nach jeder Routine gesperrt bzw entsperrt werden muss...

Code:
ActiveSheet.Unprotect Password:=""
ActiveSheet.Protect Password:=""
Antworten Top


Gehe zu:


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