Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Arbeitsmappe sperren nach Datumsablauf.

Arbeitsmappe sperren nach Datumsablauf.
02.07.2019 14:16:28
Niko
Hallo an alle,
habe ein “kleines“ Thema mit Datumssperre. Möchte meine Arbeitsmappe sperren wenn Datum abgelaufen ist, mit VBA. Habe hin und her rechesiert aber ohne Erfolg. Habe in diesen Forum super gute Ansätze für Zeilen, Zellen oder Blatt Sperrungen mit Datum gefunden, doch habe ich nichts mit Arbeitsmappe Sperrung nach Datumsablauf gefunden.
Habe anbei ein kleinen Code gefunden (weiß nicht mehr wo), doch der funktioniert nicht.
--------------------------------------
Private Sub Workbook_Open()
If Date >= CDate("31.01.2020") Then
MsgBox "Mappe nicht mehr gültig, bitte benutze die neue oder kontaktiere mit mir."
ThisWorkbook.Close
End If
End Sub

----------------------------------------------------
Es soll die ganze Arbeitsmappe sperren, wenn möglich schon bei anklicken der Mappe soll ein Fenster aufgehen das informiert das es nicht geöffnet werden kann. Oder das es aufgeht und nicht mehr eingetragen werden kann.
In welcher Möglichkeit auch immer, es soll nicht mehr benutzt werden können nach Ablauf eines gewissen Datums.
Danke allen in voraus,
Niko
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arbeitsmappe sperren nach Datumsablauf.
02.07.2019 15:03:23
Regina
Hallo Niko,
also bei mir funktioniert Dein Code (wenn ich das Jahr mal auf 2019 ändere). Aber ein echter schutz ist das nicht. Wenn jemand die Makros auf seinem Rechner deaktiviert hat, wird Deine "Absicherung" ausgetrickst.
Aus meiner Sicht gibt es nur eine Möglichkeit: Versehe die Datei nach Ablauf der Frist mit einem Kennwort "zum Öffnen".
Gruß
Regina
Anzeige
AW: Arbeitsmappe sperren nach Datumsablauf.
02.07.2019 15:21:40
Niko
Hallo Regina,
Danke für “kleinen“ Denkanstoß, habe mich im jungle das VBA verirrt, doch jetzt habe ich es :-)
Yep…es funktioniert :-) Danke.
PS. Dieser Schutz reicht für mein Vorhaben voll und ganz, soll ja nur die Freunde dran erinnern das sie die neue form benutzen sollen wenn das Jahr vorüber ist.
Danke,
Niko
PS for all: Thema erledigt, dieser Code funktioniert :-)
Anzeige
AW: Arbeitsmappe sperren nach Datumsablauf.
02.07.2019 15:09:04
Pierre
Hallo Niko,
ich hoffe, du weißt, dass der Code erst ab dem 31.01.2020 funktioniert?
Gib mal Testweise im Code stattdessen z. B. den 01.07.2019 ein ;-)
Gruß Pierre
AW: Arbeitsmappe sperren nach Datumsablauf.
02.07.2019 15:50:19
Niko
Hi Pierre,
Problem war nicht mit Datum. Problem mit reinfolge im vba Blatt... bei zwei mal Private Sub Workbook_Open()...ist genau so blöd :-)...aber jetzt habe ich ja etwas dazu gelernt :-)
Die Moral der Geschichte ist...es ist Urlaubszeit :-)
In diesen sinne, schönen Urlaub an alle :-)
Thx
Niko
Anzeige
AW: Arbeitsmappe sperren nach Datumsablauf.
02.07.2019 15:50:21
Niko
Hi Pierre,
Problem war nicht mit Datum. Problem mit reinfolge im vba Blatt... bei zwei mal Private Sub Workbook_Open()...ist genau so blöd :-)...aber jetzt habe ich ja etwas dazu gelernt :-)
Die Moral der Geschichte ist...es ist Urlaubszeit :-)
In diesen sinne, schönen Urlaub an alle :-)
Thx
Niko
Anzeige
AW: Arbeitsmappe sperren nach Datumsablauf.
03.07.2019 12:22:24
Pierre
Hallo Niko,
ich habe deinen Code in eine leere Mappe eingefügt, das Datum geändert und es funktionierte wie gewünscht.
Aber wenn es gelöst ist, umso besser :-)
Dir auch schönen Urlaub (bei mir dauert es noch etwas), aber danke dir!
Gruß Pierre
;
Anzeige
Anzeige

Infobox / Tutorial

Arbeitsmappe nach Datumsablauf sperren


Schritt-für-Schritt-Anleitung

Um Deine Excel-Arbeitsmappe automatisch zu sperren, wenn ein bestimmtes Datum überschritten wird, kannst Du folgenden VBA-Code verwenden. Hier sind die Schritte, die Du befolgen solltest:

  1. Öffne die Excel-Arbeitsmappe, die Du schützen möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Wähle im Projektfenster "Diese Arbeitsmappe" aus.

  4. Füge den folgenden Code ein:

    Private Sub Workbook_Open()
       If Date >= CDate("31.01.2020") Then
           MsgBox "Mappe nicht mehr gültig, bitte benutze die neue oder kontaktiere mich."
           ThisWorkbook.Close
       End If
    End Sub
  5. Ändere das Datum entsprechend Deinem Bedürfnis.

  6. Schließe den VBA-Editor und speichere Deine Arbeitsmappe als Makro-enabled Datei (*.xlsm).

  7. Schließe und öffne die Arbeitsmappe erneut, um den Code zu testen.


Häufige Fehler und Lösungen

Hier sind einige häufige Probleme, die bei der Implementierung des Codes auftreten können, sowie deren Lösungen:

  • Problem: Der Code funktioniert nicht.

    • Lösung: Stelle sicher, dass Du die Datei als *.xlsm speicherst und die Makros in Excel aktiviert sind.
  • Problem: Das Datum im Code ist falsch.

    • Lösung: Achte darauf, dass das Datum im Code im richtigen Format eingegeben wird (TT.MM.JJJJ).
  • Problem: Mehrfache Private Sub Workbook_Open()-Deklarationen.

    • Lösung: Überprüfe Deinen Code auf doppelte Deklarationen und entferne die überflüssigen.

Alternative Methoden

Neben dem VBA-Ansatz gibt es auch andere Möglichkeiten, um eine Excel-Arbeitsmappe nach einem bestimmten Datum zu sperren:

  • Passwortschutz: Du kannst die Datei mit einem Kennwort versehen, das nur nach dem Ablaufdatum bekannt ist.
  • Excel-Schutz: Verwende die integrierte Funktion, um das Blatt oder die Zellen nach dem Ablaufdatum zu schützen, jedoch ist dies weniger sicher.

Praktische Beispiele

Hier sind einige Beispiele zur Verwendung des Codes:

  1. Beispiel 1: Sperre eine Arbeitsmappe für das Jahr 2023.

    Private Sub Workbook_Open()
       If Date >= CDate("31.12.2023") Then
           MsgBox "Diese Arbeitsmappe ist nach dem 31.12.2023 nicht mehr gültig."
           ThisWorkbook.Close
       End If
    End Sub
  2. Beispiel 2: Informiere den Benutzer über das Ablaufdatum.

    Private Sub Workbook_Open()
       If Date >= CDate("01.01.2024") Then
           MsgBox "Die Nutzung dieser Datei ist abgelaufen. Bitte aktualisiere die Datei."
           ThisWorkbook.Close
       End If
    End Sub

Tipps für Profis

  • Verwendung von Variablen: Du kannst das Datum in einer Variablen speichern, um die Lesbarkeit des Codes zu erhöhen.

    Dim Ablaufdatum As Date
    Ablaufdatum = CDate("31.01.2020")
    If Date >= Ablaufdatum Then
       MsgBox "Mappe nicht mehr gültig."
       ThisWorkbook.Close
    End If
  • Benachrichtigungen anpassen: Du kannst die MsgBox anpassen, um spezifische Anweisungen oder Informationen anzuzeigen.


FAQ: Häufige Fragen

1. Frage
Was passiert, wenn ich die Makros nicht aktiviere?
Antwort: Der Schutz funktioniert nicht, da der Code nicht ausgeführt wird.

2. Frage
Kann ich das Ablaufdatum einfach ändern?
Antwort: Ja, Du kannst das Datum im Code jederzeit anpassen.

3. Frage
Gibt es eine Möglichkeit, den Schutz zu umgehen?
Antwort: Wenn jemand die Makros deaktiviert oder die Datei in ein anderes Format speichert, kann der Schutz umgangen werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige