Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1484to1488
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

Dateischutz über VBA

Dateischutz über VBA
06.04.2016 13:41:26
Stefan
Hallo,
das letzte mal wurde mir so gut geholfen hier, da habe ich direkt noch eine Frage.
Ich suche nun schon etwas, finde aber nicht mal eine Information ob es überhaupt möglich ist was ich vorhabe.
Es geht darum, das mein Makro, ab einem bestimmten Datum (01.01.2017) die gesamte Excel Datei mit einem Kennwort schützen soll. So soll vermieden werden das die Excel Liste nach dem 01.01.2017 weiterhin verwendet wird. Ich rede nicht von einem Schreibschutz, sondern von einem Dateischutz.
So wie er manuell über den Weg Datei -> Speichern unter -> Tools -> Allgemeine Optionen, eingerichtet werden kann.
Ich beginne mit dem Code:

Private Sub Workbook_Open()
If Date > CDate("01.01.2017") Then
'hier benötige ich eine Lösung zum Dateischutz
End If
End Sub

nur um das Datum abzufragen.
Doch der eigentlich Code zum Schutz den finde ich nicht.
Effektiv kann ich das auch nur dann verwenden wenn auch beim Kopieren einer Excel Datei die Schutzfunktion aktiv bleibt. Beim Schreibschutz ist das z.B. ja nicht der Fall. Liste kopiert und sie kann sofort beschrieben werden. Jetzt ist der Schreibschutz ja nun auch nicht dafür gedacht eine Datei vor Manipulation zu schützen, sondern eher um versehentliches überschreiben zu vermeiden.
Ich habe mir gedacht das Makro sollte wie folgt funktionieren:
Beim öffnen der Datei
Frage das Datum 01.01.2017 ab
Wenn das Datum 01.01.2017 kleiner ist als heute
dann setze ein Kennwort für den "Dateischutz" und Speicher die Datei unter gleichem Namen im gleichem Verzeichnis.
Im Anschluss soll der Dateischutz auch bestehen wenn die Datei kopiert wird oder gar ohne Makros ausgeführt wird. Denn nur weil ein Makro nicht ausgeführt wird, kann ja der Schutz nicht plötzlich weg sein!? Oder habe ich einen Denkfehler?
Ich danke euch schon mal für eure Hilfe.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
siehe Workbook.SaveAs-Methode owT
06.04.2016 14:32:49
Rudi

AW: siehe Workbook.SaveAs-Methode owT
06.04.2016 19:21:05
chris58
Hallo !
Mich hat das interessiert. Habe was gefunden was dich ev. interssieren könnte.
Das ganz in "Diese Arbeitsmappe" und auf dem Tabellenblatt in A1 (oder sonstwo) das Datum ab wann die Mappe nicht mehr gehen soll.
Muß nur morgen schauen, ob, wenn ich im System das Datum umstelle, dann die Mappe trotz allem aufgeht.
Wird wohl so sein...........hmmmm
Private Sub Workbook_Open()
Dim dat As Date
dat = Format(CDate(Now), "07.04.2016")
If dat > ThisWorkbook.Sheets("Tabelle1").Range("A1") Then ' "A1" .. in A1 stünde dann das Gü _
ltigkeitsdatum und Name anpassen!
MsgBox "Diese Arbeitsmappe schimmelt schon!"
ThisWorkbook.Close
End If
End Sub

Anzeige
am Ende ...
06.04.2016 22:39:24
Rudi
Hallo,
... ist in Excel nichts sicher.
Gruß
Rudi

Möglichkeit gefunden
07.04.2016 18:17:34
chris58
Hallo !
Ich habe was gefunden, das in etwa Deinem Eintrag entsprechen würde.
Man kann diese aber trotz allem aufmachen und das Makro verändern
CTRL und BREAK (Pausentaste) nach Einstieg drücken und man kann das Makro verändern.
Meine: wenn man es wissen tut
lg
chris
Private Sub Workbook_Open()
If Date >= CDate("07.04.2016") Then
MsgBox "Dies ist eine Testdatei, sie können bis  zum 7.4.2016 lernen ! Danach kein Einstieg  _
mehr möglich !"
ThisWorkbook.Close
End If
End Sub

Anzeige
AW: Möglichkeit gefunden
11.04.2016 08:21:43
Stefan
Hallo,
danke für deine Antwort und entschuldige bitte meine späte Rückmeldung.
Deinen Ansatz hatte ich bereits in Erwägung gezogen, denn was nicht offen ist kann ich auch nicht ändern oder kopieren. Ich hatte es nur mit dem Befehl Application.Close geschrieben.
Problem bei dem ganzen ist, das wenn die Makrosicherheit hochgestellt wird, das Makro erst manuell wieder aktiviert werden muss bevor sich Excel schließt. Das heißt, bis dahin kann ich in der Tabelle arbeiten.
Anders gesagt, wenn ich die Tabelle kopiere, werde ich wieder gefragt ob ich die Makros ausführen will. Drücke ich ja, schließt sich Excel. Aber den Fehler macht man wohl nur ein mal.
Daher wäre für mich die optimalste Lösung eben ein Dateischutz. Den wiederum werde ich aber scheinbar nicht über VBA aktivieren können. Zu mindestens habe ich noch keine annehmbare Lösung gefunden.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige