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

Verfalsdatum Excelmakro

Verfalsdatum Excelmakro
Nessig
Hallo zusammen,
mit Hilfe eines anderen Entwickler haben wir ein Makro für ein sogenanntes Verfallsdatum entwickelt. Ziel des Makro soll es sein, das ab ein bestimmten Datum der Benutzer der Excelberechnung ein Passwort eingeben muß. Sollte er diese passwort nicht haben, soll sich die Exceldatei schließen. Aber der Benutzer mit ein Passwort soll auch das Gültigkeitsdatum nach Eingabe des Passwortes ändern können.
Das Makro sieht so aus:
Private Sub Workbook_Open()
Dim wks As Worksheet
Dim verfall As Date
verfall >= CDate("13.08.2008") 'Datum setzen, ab dem das Zugangswort erfragt werden soll _
(bis zu diesem Datum ist die Mappe ohne Zugangswort zu öffnen!)
If Date >=CDate 'wenn Datum größer oder gleich in "CDate" gesetztes Datum _
dann Passwort/Zugangswort Abfrage
PW = InputBox("Die Testphase ist abgelaufen," _
& vbCr & "Zugang nur mit Passwort möglich!", "Info")
End If
Select Case PW
'Zugangswort/wörter vergeben
Case "Test", "Test2", "Test3" ' es sind auch mehrere Zugangswörter möglich!
'Wenn ein falsches Zugangswort verwendet wird
Case Else
If Date >= CDate ' wenn Datum größer oder gleich in "CDate" gesetztes Datum _
dann Infobox starten und Datei schließen
MsgBox "Die Datei wird geschlossen!", vbCritical + vbOKOnly, "Falsches Kennwort"
ActiveWorkbook.Close savechanges:=False
End If
End Select
End Sub

Dieses Makro zeigt uns immer wieder Fehler an. Kann uns einer hier helfen?

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

Betreff
Benutzer
Anzeige
AW: Verfalsdatum Excelmakro
27.03.2012 09:35:25
Matthias
Hallo
Überall IF ohne Then !
PW nicht deklariert als String
probier mal so:
Option Explicit
Private Sub Workbook_Open()
Dim wks As Worksheet, PW$
Dim verfall As Date
verfall = CDate("13.08.2008") 'Datum setzen, ab dem das Zugangswort erfragt werden soll(bis zu  _
diesem Datum ist die Mappe ohne Zugangswort zu öffnen!)
If Date >= verfall Then 'wenn Datum größer oder gleich in "CDate" gesetztes Datum dann Passwort/ _
Zugangswort Abfrage
PW = InputBox("Die Testphase ist abgelaufen," & vbCr & "Zugang nur mit Passwort möglich!", " _
Info")
End If
Select Case PW
'Zugangswort/wörter vergeben
Case "Test", "Test2", "Test3" ' es sind auch mehrere Zugangswörter möglich!
'Wenn ein falsches Zugangswort verwendet wird
Case Else
If Date >= verfall Then ' wenn Datum größer oder gleich in "CDate" gesetztes Datum dann  _
Infobox starten und Datei schließen
MsgBox "Die Datei wird geschlossen!", vbCritical + vbOKOnly, "Falsches Kennwort"
ActiveWorkbook.Close savechanges:=False
End If
End Select
End Sub
Gruß Matthias
Anzeige
besser DateSerial anstatt CDate oder DateValue ...
27.03.2012 10:15:03
Tino
Hallo,
wegen der Sprachregion würde ich versuchen auf
CDate oder DateValue bei dieser Art der Verwendung zu verzichten!
verfall = DateSerial(2008, 8, 13)
Gruß Tino
AW: besser DateSerial anstatt CDate oder DateValue ...
27.03.2012 11:08:17
Nessig
Hallo zusammen,
ich hab das Problem mit dem Makro gelöscht
Gelöscht oder gelöst? ;-)
27.03.2012 18:03:01
Luc:-?
Hi, Nessig;
wie sieht's aus? Hattest du bemerkt, dass die Forumssoftware dem Matthias 'nen Streich gespielt und den Zeilenfortsetzungstiefstrich einfach in einen Text hineingesetzt hat, was dann zum Syntaxfehler führt?
Ansonsten ist das, was ihr da vorhabt doch geradezu harmlos für einen nur etwas versierten XlNutzer. Da müsstet ihr schon wesentl brutaler vorgehen → alle dbzgl relevanten, auffälligen Codeteile obfuszieren (dafür eignet sich die vbFkt CallByName in Verbindung mit einer eigenen Kryptisierungsfkt für En-/DeCode, Ansicht-Bsp im Archiv) und bei Terminüberschreitung die Datei unbrauchbar machen. Auch das ist sicher kein 100%iger, aber wahrscheinl doch ein 90%iger Schutz.
Gruß Luc :-?
Anzeige
AW: Verfallsdatum Excelmakro
27.03.2012 10:47:13
Nessig
Hallo zusammen,
ab PW=InputBox wird "Fehler beim Kompilieren" Syntaxfehler angezeigt
AW: Verfalsdatum Excelmakro
27.03.2012 10:51:40
Rudi
Hallo,
Aber der Benutzer mit ein Passwort soll auch das Gültigkeitsdatum nach Eingabe des Passwortes ändern können.
Bau dir ein Sheet ein, dessen Visible-Eigenschaft du im VBE auf xlSheetVeryHidden setzt. Da kannst du das neue Datum rein setzen. Das Blatt kann nur noch über den VBE eingeblendet werden. Aber wenn jemand das VBA-Kennwort aushebelt ist sowieso alles fürn Eimer.
Was ist, wenn der User das Makro unterbricht oder die Mappe mit deaktivierten Makros startet? Da hast du noch zu tun.
Private Sub Workbook_Open()
Dim PW
Dim dteVerfall As Date
dteVerfall = Sheets("verstecktesBlatt").Range("A1") 'Datum setzen, ab dem das Zugangswort  _
erfragt werden soll _
(bis zu diesem Datum ist die Mappe ohne Zugangswort zu öffnen!)
If Date > dteVerfall Then 'wenn Datum größer oder gleich in "CDate" gesetztes Datum _
dann Passwort/Zugangswort Abfrage
PW = InputBox("Die Testphase ist abgelaufen," _
& vbCr & "Zugang nur mit Passwort möglich!", "Info")
Select Case PW
Case "Test", "Test2", "Test3"
'nix passiert
Case Else
'Wenn ein falsches Zugangswort verwendet wird
'dann Infobox starten und Datei schließen
MsgBox "Die Datei wird geschlossen!", vbCritical + vbOKOnly, "Falsches Kennwort"
Me.Close savechanges:=False
End Select
End If
End Sub
Sub NeuesDatumSetzen()
Dim myDate
myDate = InputBox("Neues Datum?", , Date + 10)
If IsDate(myDate) Then
Sheets("verstecktesBlatt").Range("A1") = CDate(myDate)
End If
End Sub

Gruß
Rudi
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige