Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1756to1760
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA bestimmte Zellen sperren ab Datum

VBA bestimmte Zellen sperren ab Datum
14.05.2020 08:02:37
Uwe
Hallo zusammen,
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

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA bestimmte Zellen sperren ab Datum
14.05.2020 08:24:00
Hajo_Zi
Hallo Uwe,
ich kann Dir nicht helfen, da bei mir eine XLSX Datei kein mkaro enthält.
GrußformelHomepage
AW: VBA bestimmte Zellen sperren ab Datum
14.05.2020 09:02:57
Uwe
Hallo Hajo,
danke für deine Antwort. Die Datei enthält kein Makro, das ist korrekt. Ich bin ja schließlich auf der Suche nach einem solchen :)
Der zitierte Schnipsel geht zwar in die Richtung, die ich mir vorstellen kann. Allerdings bin ich viel zu unerfahren, um den Code anzupassen, damit er für mich läuft (siehe meine beschriebenen Anforderungen). Ich habe den Codeschnipsel nun als Makro in die Datei kopiert. Hier nochmal als Updload: https:\/\/www.herber.de/bbs/user/137539.xlsm
Gruß
Uwe
Anzeige
AW: VBA bestimmte Zellen sperren ab Datum
14.05.2020 09:27:10
Hajo_Zi
Hallo Uwe,
Tabelle geändert.

Tabelle1
 BCDEFG
1 09.05.202016.05.202023.05.202030.05.202006.06.2020
2  Kalenderwoche
3 2021222324
4Umsatz F&B lt. Protel     
5Menge120120120120120
6Preis77,1577,1577,1577,1577,15
7Umsatz andere15001500150015001500
8Zusätzlicher Umsatz     
9Menge11111
10Preis100100100100100
Schriftart wird in dieser Tabelle nicht dargestellt

 verbundene Zellen 
D2:G2

verwendete Formeln
Zelle Formel Bereich N/A
C1:G1=DATUM(2020;1;1)+C3*7-WOCHENTAG(DATUM(2020;1;1);2)+WENN(WOCHENTAG(DATUM(2020;1;1);2)>4;1;-6)-2  

Zahlenformate
Zelle Format Inhalt
C1 'TT.MM.JJJJ  43960
C7:G7 '0,00  1500
C8:G8 '_-* #.##0 €_-;-* #.##0 €_-;_-* "-"? €_-;_-@_- 
C10:G10 '0,00  100
D1 'TT.MM.JJJJ  43967
E1 'TT.MM.JJJJ  43974
F1 'TT.MM.JJJJ  43981
G1 'TT.MM.JJJJ  43988
Zellen mit Format Standard werden nicht dargestellt

Füllfarben und Muster  
Zelle Rot Grün Blau Color Muster Farbe
B3:B10, C3:G4, C8:G8 21721721714277081   
D5:G7, D9:G10 21722524215917529   
Zellen mit Füllfarbe automatisch werden nicht dargestellt

Schriftformate  
Zelle Rot Grün Blau Color Stil Unterstreichung Effekte Durchgestrichen Schriftart
B1:C2, B5:B7, B9:B10, C4: D1, D2:G2, D4:E1, E4:F1, F4:G1, G4:G10        Calibri 
B3:B4, B8, C3:G3 Fett        Calibri 
Zellen mit Schriftformatierung automatisch werden nicht dargestellt


Option Explicit
Private Sub Worksheet_Activate()
Dim LoLetzte As Long
Dim LoI As Long
ActiveSheet.Unprotect "x" 'passwort "x" ist optional
LoLetzte = IIf(IsEmpty(Cells(1, Columns.Count)), Cells(1, Columns.Count).End(xlToLeft). _
Column, Columns.Count)
For LoI = 3 To LoLetzte
If Cells(1, LoI) 
wenn Du willst kannst Du die Berechnenung des Tages noch in VBA einbauen. Mir ist das zu aufwendig
Gruß Hajo
Anzeige
AW: VBA bestimmte Zellen sperren ab Datum
14.05.2020 13:02:55
Uwe
Hallo Hajo,
hat super geklappt, vielen Dank für deine Mühe! Die Anpassung der Tage habe ich mangels Kenntnissen in VBA nicht eingebaut, es erfüllt aber auch so seinen Zweck vollkommen!
Vielen Dank und beste Grüße
Uwe

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige