Wenn Schriftfarbe rot dann Zelle gesperrt
Hallo,
nach x Stunden Google Suche wende ich mich an euch. Eigentlich ist mein Problem schnell erklärt.
Wenn die Schriftfarbe in einer Zelle rot ist, so soll diese gesperrt sein. Das war es dann eigentlich auch schon.
Ich hoffe ihr habt eine Lösung für mich. Das IE kennt keine.
Gruß Asterix2
nach x Stunden Google Suche wende ich mich an euch. Eigentlich ist mein Problem schnell erklärt.
Wenn die Schriftfarbe in einer Zelle rot ist, so soll diese gesperrt sein. Das war es dann eigentlich auch schon.
Ich hoffe ihr habt eine Lösung für mich. Das IE kennt keine.
Gruß Asterix2
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 196605
Url: https://administrator.de/forum/wenn-schriftfarbe-rot-dann-zelle-gesperrt-196605.html
Ausgedruckt am: 22.04.2025 um 08:04 Uhr
7 Kommentare
Neuester Kommentar

Hallo,
hast du es schon mit VBS probiert ?
hier ein kleiner Code-Schnipsel, der dir vll. weiterhilft
Sorry kanns grade nicht richtig ausrobieren von daher keine Garantie auf Funktion 
Grüße
Exze
hast du es schon mit VBS probiert ?
hier ein kleiner Code-Schnipsel, der dir vll. weiterhilft
Sub Workbook_Open
if (Zelle.Font.ColorIndex = 3)
then
{
[Sperrbefehl fällt mir leider grade nicht ein]
}
end if
End Sub
Grüße
Exze
So einfach wie Exzellius das schreibt ist es aber nicht.
Folgender Code reagiert sobald das aktive Blatt neu berechnet wird. Dann musst du noch festlegen in welchem Zellen-Bereich du die Sperrung anwenden möchtest [Code-Zeile 4] (Einfach auf alle Zellen anwenden wäre overkill und würde die Anwendung extrem verlangsamen).
Danach prüft das Script die Zelle auf die Farbe Rot. Wenn diese Rot ist muss überprüft werden ob das aktuelle Blatt gerade geschützt ist, sonst kann der Code am Blatt nichts ändern. Ist es geschützt wird für die Änderung der Sperrung kurz der Blattschutz aufgehoben und danach wieder gesetzt. Der Methode Protect können mehrere Optionen angehängt werden, je nachdem was man bei geschütztem Blatt den Benutzern noch erlauben möchte. Die Optionen dafür kannst du mit einem testweise aufgenommenen Makro herausfinden.
Grüße Uwe
Folgender Code reagiert sobald das aktive Blatt neu berechnet wird. Dann musst du noch festlegen in welchem Zellen-Bereich du die Sperrung anwenden möchtest [Code-Zeile 4] (Einfach auf alle Zellen anwenden wäre overkill und würde die Anwendung extrem verlangsamen).
Danach prüft das Script die Zelle auf die Farbe Rot. Wenn diese Rot ist muss überprüft werden ob das aktuelle Blatt gerade geschützt ist, sonst kann der Code am Blatt nichts ändern. Ist es geschützt wird für die Änderung der Sperrung kurz der Blattschutz aufgehoben und danach wieder gesetzt. Der Methode Protect können mehrere Optionen angehängt werden, je nachdem was man bei geschütztem Blatt den Benutzern noch erlauben möchte. Die Optionen dafür kannst du mit einem testweise aufgenommenen Makro herausfinden.
Private Sub Worksheet_Calculate()
Dim a As Range
Dim c As Range
Set a = ActiveSheet.Range("A1:B2")
For Each c In a.Cells
If c.Font.ColorIndex = 3 Then
If ActiveSheet.ProtectionMode = False Then
c.Locked = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingCells:=True
Else
ActiveSheet.Unprotect
c.Locked = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingCells:=True
End If
End If
Next
End Sub
Grüße Uwe

Zitat von @Asterix2:
Hallo Exze
klappt leider nicht. Hab es mal so probiert:
Sub Workbook_Open()
If (Zelle.Font.ColorIndex = 3) Then
.Cells.Locked = True
End If
End Sub
Fehlermeldung: Unzulässiger oder nicht ausreichend definierter Verweis.
Gruß Asterix2
Hallo Exze
klappt leider nicht. Hab es mal so probiert:
Sub Workbook_Open()
If (Zelle.Font.ColorIndex = 3) Then
.Cells.Locked = True
End If
End Sub
Fehlermeldung: Unzulässiger oder nicht ausreichend definierter Verweis.
Gruß Asterix2
Hi,
ja kein Wunder
Was Colinardo geschrieben hat, scheint da schon eher ausgereift, bzw. kann da der Code natürlich auch nicht einfach kopiert, sondern muss vorher noch angepasst werden
Grüße
Exze
EDIT: all unser Code richtet sich auf Microsoft Office Excel aus, wenn du da was anderes verwendest, musst du uns das sagen