ich benötige eure Unterstützung mit einem VBA-Code. Ich arbeite mit Excel 2016 und möchte per folgendes erzielen:
In einem passwortgeschützten Tabellenblatt (Beispieldatei habe ich hochgeladen) sind bestimmte Bereiche durch den Anwender editierbar (im Beispielblatt in blau eingefärbt). Diese Zellbereiche sollen ab einem bestimmten Datum nicht mehr editierbar, also auch gesperrt sein. Die Daten sollen nach Kalenderwochen (Zeile 3) eingegeben werden.
Nun soll beispielsweise die Spalte von KW 21, also Spalte C nur bis zu einem bestimmten Datum - konkreter gesagt bis zwei Tage vor Beginn der KW - editierbar sein. Anschließend sollen die gesamte Spalte C, wie das restliche Tabellenblatt, gesperrt und nicht mehr blau gefärbt sein. Das gleiche analog für die weiteren Spalten D, E und F.
Die Datei liegt auf einem Sharepoint, das "heutige" Datum sollte also wenn möglich vom Server verwendet werden, nicht vom lokalen Rechner.
Folgenden Code habe ich im Forum gefunden, der in die richtige Richtung geht, aber immer nur _
Zeilen in Abhängigkeit eines Datums sperrt. Ich bräuchte es wie beschrieben auf Spalten gesehen, _ bzw. nur Zellbereiche.
Private Sub Worksheet_Activate()
Dim AlleA As Range
Set AlleA = Range(Cells(1, 1), Cells(ActiveSheet.UsedRange.Rows.Count, 1))
ActiveSheet.Unprotect "x" 'passwort "x" ist optional
ActiveSheet.Cells.Locked = False ' erstmal alles entsperren
For Each Cell In AlleA
If Cell.Value
Ich hoffe, ich konnte mich einigermaßen verständlich ausdrücken und freue mich sehr auf Eure Antworten.
https:\/\/www.herber.de/bbs/user/137537.xlsx
Vielen Dank vorab und beste Grüße
Uwe