Hallöchen,
im Anhang habe ich mal ein simples Beispiel. Die eine Frage beantwortest Du mit "ich", und das Projekt und die Arbeitsmappe (Struktur) ist mit "willi" geschützt.
Falls jemand die Datei nicht downloaden will, In DieseArbeitsmappe habe ich folgende Codes.
Damit stelle ich sicher, dass die Blätter vor dem Speichern ausgeblendet werden und danach wieder ein. Könnte ja sein, man will die Arbeit fortsetzen und hat nur zwischengespeichert. Das Einblenden nach dem Speichern erfolgt nur, wenn vorher mindestens eins der geschützten Blätter sichtbar war. Dadurch umgehe ich eine erneute Passwortprüfung.
Code:
Dim boVis As Boolean
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
'Makro verlassen, wenn geschuetzte Blaetter nicht sichtbar waren
If boVis = False Then Exit Sub
'Arbeitsmappenschutz zuruecksetzen
ActiveWorkbook.Unprotect Password:="willi"
'Blaetter einblenden
Sheets("Tabelle1").Visible = True
Sheets("Tabelle2").Visible = True
Sheets("Tabelle3").Visible = True
'ggf Arbeitsmappenschutz wieder setzen
ActiveWorkbook.Protect Password:="willi", Structure:=True, Windows:=False
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Arbeitsmappenschutz zuruecksetzen
ActiveWorkbook.Unprotect Password:="willi"
'Sicherheitshalber ein Blatt einblenden - min. ein Blatt muss sichtbar sein
'kann entfallen, wenn die Struktur geschuetzt bleibt und der Anwender dadurch
'Tabelle1 nicht ausblenden kann
Sheets("Tabelle1").Visible = True
'Pruefen, ob geschuetzte Blaetter sichtbar waren
If Sheets("Tabelle2").Visible = True or Sheets("Tabelle3").Visible = True Then boVis = True
'Blaetter ausblenden
Sheets("Tabelle2").Visible = xlSheetVeryHidden
Sheets("Tabelle3").Visible = xlSheetVeryHidden
'Arbeitsmappenschutz setzen
ActiveWorkbook.Protect Password:="willi", Structure:=True, Windows:=False
End Sub
In Tabelle1 gebe ich in B1 das Passwort ein. Daraufhin werden die anderen Blätter eingeblendet und das Passwort wieder entfernt. Dazu habe ich im Codemodul des Tabellenblattes diesen Code:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Wenn die Eingabe "ich" ist, dann
If Target.Value = "ich" Then
'Arbeitsmappenschutz zuruecksetzen
ActiveWorkbook.Unprotect Password:="willi"
'Blaetter einblenden
Sheets("Tabelle2").Visible = True
Sheets("Tabelle3").Visible = True
'ggf Arbeitsmappenschutz wieder setzen
ActiveWorkbook.Protect Password:="willi", Structure:=True, Windows:=False
'Ende Wenn die Eingabe "ich" ist, dann
End If
'Eingabe / Passwort entfernen
Target.Value = ""
End Sub
Die Eingabe ist hier kurz sichtbar, das kann man natürlich auch anders lösen, z.B. mit einem Userform mit Textfeld und entsprechender Angabe eines anzuzeigenden Zeichens bei der Eigenschaft "PasswordChar" oder ...
Man kann die Passwortabfrage natürlich schon beim Öffnen der Datei vornehmen, wenn man z.B. generell mit den ausgeblendeten Blättern arbeitet. Wenn das nicht der Fall ist, dann ist so eine unabhängige Abfrage vorteilhafter.
... Für Deine Datumsabfrage könntest Du irgendwo ein Datum hinterlegen, z.B. auf Tabelle1 in C1 - die Zelle gehört im Beispiel ja zum ausgeblendeten Bereich -, und dass dann mit der Prüfung des Passwortes verbinden, z.B. für die ersten 100 Tage im Amt
If Target.Value = "ich" And Date - Cells(1, 3).value <= 100 Then
In C1 würde dann z.B. das heutige Datum stehen, oder
If Target.Value = "ich" And Date < Cells(1, 3).value Then
Dann hätte C1 ein Zieldatum
Besser wäre ggf. die Eintragung des Datums auf einem weiteren very gehiddeten Blatt. Inhalte von ausgeblendeten Zellen eines bekannten Blattes abzufragen ist dann doch etwas zu simpel
Durch den Blattschutz kann man das Datum nicht gleich ändern, aber zuweilen könnte es ja auch etwas relevanteres sein als nur ein Datum ...
... Du könntest übrigens auch durch unterschiedliche "Passwörter" unterschiedliche Reaktionen hervorrufen. "ich" sehe dann z.B. nur Tabelle2, "du" bekommst nur Tabelle3, und der "admin" bekommt beide und der "entwickler" bekommt alles ohne Zeiteinschränkung
Dann muss man natürlich in allen 3 Makros etwas tun und boVis wird zur Entscheidungshilfe für das Wiedereinblenden nach dem Speichern auch nicht mehr reichen