Datumsfehler bei Passwortabfrage

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
InputBox MsgBox
Bild

Betrifft: Datumsfehler bei Passwortabfrage
von: Günter
Geschrieben am: 02.12.2015 19:46:03

Hier bin ich wieder, ich unbedarfter und unwissender...
Ich komme bei diesem Proplem nicht weiter
Option Explicit


Private Sub Workbook_Activate()
 
Call prcVisibilityMenus
 
End Sub


Private Sub Workbook_Deactivate()
 
Call prcVisibilityMenus(opvblnVisible:=True)
 
End Sub


Private Sub prcVisibilityMenus(Optional ByVal opvblnVisible As Boolean)
 With Application
    If Val(.Version) < 12 Then
       .CommandBars("Worksheet Menu Bar").Enabled = opvblnVisible
       .CommandBars("Formatting").Visible = opvblnVisible
       .CommandBars("Standard").Visible = opvblnVisible
    Else
       Call .ExecuteExcel4Macro("Show.Toolbar(""Ribbon"", " & opvblnVisible & ")")
    End If
End With
End Sub
Private Sub Workbook_Open()
Application.DisplayAlerts = False
Heute = Now   (hier bekomme ich immer "Kompilierungsfehler" angezeigt)
Verfalldatum = #12/2/2015#  'Hier Verfalldatum im Format MM/TT/JJJJ eintragen
If Verfalldatum < Heute Then
Dim passwort As String
    passwort = InputBox("Die Testphase ist abgelaufen," & Chr(13) & Chr(13) & "  bitte geben  _
Sie Ihre Registrierungs-Nr.:", "Testphase abgelaufen, Reg.Nr. erforderlich")
    If passwort <> "XXX" Then
    MsgBox "     Das Kennwort ist ungültig," & Chr(13) & Chr(13) & "der Vorgang wird  _
abgebrochen !"
    ThisWorkbook.Close
End If
MsgBox ("Registrierung erfolgreich")
Application.DisplayAlerts = True
End If
End Sub

Bild

Betrifft: AW: Datumsfehler bei Passwortabfrage
von: Werner
Geschrieben am: 02.12.2015 20:01:36
Hallo Günter,
du hast deine Variable Heute nicht definiert. Vielleicht liegt es ja daran.

Dim Heute AS Date
Heute = Now
Gruß Werner

Bild

Betrifft: AW: Datumsfehler bei Passwortabfrage
von: Günter
Geschrieben am: 02.12.2015 20:06:11
Danke...
jetzt sagt er mir...
Private Sub Workbook_Open()
Application.DisplayAlerts = False
Dim Heute As Date
Heute = Now
Verfalldatum = #12/2/2015# 'Hier Verfalldatum im Format MM/TT/JJJJ eintragen
Verfalldatum nicht definiert!!!

Bild

Betrifft: Besser so, ...
von: Luc:-?
Geschrieben am: 02.12.2015 21:03:21
…Günter:
Heute = Int(Now) oder Heute = Evaluate("today()") und zuvor in der Deklaration Const Verfalldatum As Date = #12/2/2015#, denn das sollte dann auch deklariert wdn → als Konstante, falls es immer gleich bleibt!
Gruß, Luc :-?

Besser informiert mit …

Bild

Betrifft: AW: Besser so, ...
von: Günter
Geschrieben am: 02.12.2015 21:28:19
Erst mal Danke für diese Info,
ich stehe momentan ganz auf dem Schlauch, denn nun blicke ich gar nicht mehr durch.
VBA ist meine "Ganz Große Stärke" ich kann hier alles!!!!!!!! und habe keine Ahnung!!!!!
Mal ehrlich, ich habe die anderen "Codes" auch nur aus dem Forum aund der Recherge aus dem "NET"
Leider kann ich das alles nicht so umsetzen wie ich es gerne hätte.
Heute = Int(Now) oder Heute = Evaluate("today()") und zuvor in der Deklaration Const Verfalldatum As Date = #12/2/2015#, denn das sollte dann auch deklariert wdn → als Konstante, falls es immer gleich bleibt!
Das sind für mich auch "BÖHMISCHE DÖRFER"
Ich glaube, für mich wäre es besser, ich hätte die "Finger" davon gelassen.
Trotzdem Danke
Günter

Bild

Betrifft: Die VBE-Hilfe dürfte da schon weiterhelfen... :-]
von: Luc:-?
Geschrieben am: 02.12.2015 21:58:23
Was meinst du wohl, wie wir das mal erlernt haben, Günter?!
„Ohne Fleiß kein Preis!“ heißt es doch nicht umsonst im Sprichwort…
Noch'n Tipp: Die Deklaration folgt stets als Erstes auf den ProzedurKopf. Mit Const wdn unveränderliche Konstanten, mit Dim veränderbare Variablen deklariert (eine Sonderform Letzterer sind die, die ihren Wert zwischen 2 Aufrufen beibehalten; sie wdn mit Static deklariert).
Und Dim Heute As Date ist natürlich weiterhin erforderlich. Ohne As Date bzw ganz ohne Deklaration wird sich VBA ggf nicht für den DatenTyp Date entscheiden, was zu Problemen führen kann (wie du ja siehst).
Luc :-?

Bild

Betrifft: sind doch nur ein paar Zeilen
von: Michael
Geschrieben am: 03.12.2015 01:20:21
Hi zusammen,
teste mal

Private Sub Workbook_Open()
Dim Heute As Date
Dim passwort As String
Const Verfallsdatum = #12/2/2015#
Application.DisplayAlerts = False
Heute = Int(Now)
If Int(Verfalldatum) < Heute Then
  passwort = InputBox("Die Testphase ist abgelaufen," & vbLf & vbLf & _
    "Bitte geben Sie Ihre Registrierungs-Nr.: ", _
    "Testphase abgelaufen, Reg.Nr. erforderlich")
  If passwort <> "XXX" Then
    MsgBox "Das Kennwort ist ungültig," & vbLf & "der Vorgang wird abgebrochen !"
    ThisWorkbook.Close
  End If
  MsgBox ("Registrierung erfolgreich")
End If
Application.DisplayAlerts = True
End Sub
Aber daß es einen effektiven Schutz für Datein gibt, kannste vergessen.
Drücke einfach mal Strg+Untbr, wenn eine Meldung erscheint, dann kannst Du das Makro abbrechen.
Schöne Grüße,
Michael

Bild

Betrifft: AW: sind doch nur ein paar Zeilen
von: Günter
Geschrieben am: 03.12.2015 14:31:03
Hallo Michael,
habe es getestet, Geht nicht. Weiß auch nicht warum.
Wie gesagt. ich werde das Projekt aufgeben.
Vielen Dank für die Mühe die Du Dir gemacht hast.
mfg
Günter

Bild

Betrifft: AW: Die VBE-Hilfe dürfte da schon weiterhelfen... :-]
von: Günter
Geschrieben am: 03.12.2015 14:28:20
Hallo, vielen Dank für die aufmunderten Worte.
Ich habe auch ein Srichwort:
Was Hänschen nicht lernt, lernt Hans nimmermehr.
Nachdem ich hier nicht zurecht komme, werde ich das Projekt
einfach abbrechen.
Trotz alledem vielen Dank

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Datumsfehler bei Passwortabfrage"