Hi,
die Logik dahinter wurde ja schon sehr schön von juvee erklärt.
Hier nochmals der Code mit Kommentaren:
Ich hoffe es ist nun etwas klarer.
die Logik dahinter wurde ja schon sehr schön von juvee erklärt.
Hier nochmals der Code mit Kommentaren:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range 'Range, der die Schnittmenge der geänderten Zellen mit A5:A29 enthält
Dim Zelle As Range 'eine Zelle dieses Bereichs
Dim i As Long 'Zählvariable für den Offset der Zeilen (0-11)
Dim k As Long 'Zeilennummer von Zelle
Dim Schützen As Boolean 'Sollen die Zellen geschützt werden (Wahr/Falsch)
Set Bereich = Intersect(Target, Range("A5:A29")) 'Schnittmenge der gänderten Zellen mit A5:A29 festlegen
If Not Bereich Is Nothing Then 'Falls Schnittmenge nicht leer ist (sie also existiert)
Me.Unprotect 'Blattschutz aufheben
For Each Zelle In Bereich 'Schleife über alle Zellen von Bereich
Schützen = Zelle = "" Or Left(Zelle, 8) Like "Fertig, " 'wenn Zelle leer ist oder mit "Fertig, " beginnt, Dann wird Schützen Wahr, ansonsten Falsch
k = Zelle.Row 'Zeilenummer merken
For i = 0 To 11 'Schleife über die 12 Offset-Bereiche
Range(Cells(k + i * 36, "C"), Cells(k + i * 36, "AG")).Locked = Schützen 'Zellschutz in den Zeilen für die Spalten C:AG setzen
Next i 'Ende Schleife über Offset-Bereiche
Next Zelle 'Ende Schelife über alle Zellen von Bereich
Me.Protect 'Blattschutz wieder setzen
End If 'Ende "Schnittmenge ist nicht leer"
End Sub
Ich hoffe es ist nun etwas klarer.
Gruß,
Helmut
Win10 - Office365 / MacOS - Office365
Helmut
Win10 - Office365 / MacOS - Office365