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
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
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
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
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:=""
Top


Gehe zu:


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