Hallo R.G.
zuerst musst du noch etwas Vorabeit leisten: Entsperre in deiner Tabelle "leere Vorlage" alle Zellen, die bearbeitet werden sollen (rechte Maustaste - Zellen formatieren - Schutze - Haken bei "gesperrt" entfernen).
Danach füge in das VBA-Projekt der Tabelle (Anleitung hier) den folgenden Code ein:
Private Sub Worksheet_Activate()
Dim kw As Long
Dim s As Long
'vorhandenen Blattschutz aufheben
ActiveSheet.Unprotect "1234"
'Zahl der aktuellen Kalenderwoche ermitteln und um 1 verringern
'-> alte Kalenderwochen werden gesperrt
kw = CLng(Left(Range("H4"), Len(Range("H4")) - 3)) - 1
'Sperrung erst ab 2. Kalenderwoche ausführen
If kw > 0 Then
'einzelne KW durchlaufen, ab Spalte C
For s = 3 To 2 + kw
'prüfen, ob für 1. Zelle ein Blattschutz besteht
If Cells(20, s).Locked = False Then
'falls nicht, Zellen im Bereich der Zeilen 20 bis 37 bei der jeweiligen Kalenderwoche sperren
Range(Cells(20, s), Cells(37, s)).Locked = True
End If
Next s
End If
'Blattschutz setzen
ActiveSheet.Protect "1234"
End Sub
Beachte bitte, dass du das Passwort (hier 1234) natürlich an deine Verhältnisse anpassen musst. Bei der Prüfung. ob schon ein Schutz für die vergangenen Kalenderwochen gesetzt ist, wird nur die 1. Zelle in Zeile 20 geprüft. Ist dort ein Blattschutz vorhanden, so wird für diese Spalte im Bereich der Zeilen 20 bis 37 kein Zellschutz aktiviert. Das Makro wird bei jeder Aktivierung des Blattes ausgelöst. Kopierst du das Blatt, wird das Makro mitkopiert.
Gruß
M.O.