demo

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

Betrifft: demo
von: erik
Geschrieben am: 11.03.2005 15:28:25
Hallo,
ich möchte ein Tabellenblatt mit einer beschränkten Laufzeit erstellen,
also nach Ablauf von 30 Tagen soll sich die Datei nicht mehr öffnen lassen.
Hat jemand von Euch eine Idee wie man dies am schlauesten lösen kann ?
Übrigens noch mal vielen Dank für die Unterstützung meiner letzte Frage bzgl. email !!!
erik

Bild

Betrifft: AW: demo
von: Drazen
Geschrieben am: 11.03.2005 15:40:58
Hallo Erik,
das hier hab ich in der Recherche gefunden, und mir hat es geholfen:

Private Sub Workbook_Open()
Dim Pfad As String
Dim wb1 As Workbook
Dim ws1 As Worksheet
Set wb1 = ThisWorkbook
Set ws1 = wb1.Worksheets("Timer")
Application.ScreenUpdating = False 'ausschalten der Bildschirmaktualisierung
Sheets("Timer").Visible = xlVeryHidden 'Vorteil sie können nicht über "Format" -> "Blatt einblenden" eingeblendet werden
If ws1.Cells(1, 1).Value = "" Then 'eintrag des starttages der Frist beim ersten Start
ws1.Cells(1, 1).Value = Date
End If
'Test ob die Frist rum ist
If ws1.Cells(1, 2).Value = "unbegrenzt#543" Then 'bei Besitz einer unbegrenzt gültigen Version (string ist egal bedeutung ist wichtig)
ElseIf ws1.Cells(1, 1).Value + ws1.Cells(1, 2).Value < Date Then 'wenn startdatum+Frist schon vergangen sind
Application.ScreenUpdating = True
MsgBox "Die Laufzeit dieser Trialversion ist abgelaufen."
Application.DisplayAlerts = False
wb1.Close SaveChanges = False
End If
Application.ScreenUpdating = True 'ausschalten der Bildschirmaktualisierung
End Sub


Du must also ein Blatt einfügen und es unsichtbar machen per VBA, dort das Datum der ersten Aktivierung eintragen, und danach dan den Zeitraum bestimmmen in dem die Mappe gültig ist.
Hoffe es bringt dich weiter.
Grüsse
Drazen
Bild

Betrifft: AW: demo
von: erik
Geschrieben am: 11.03.2005 15:54:05
Hallo,
erstmal vielen Dank für Deine Hilfe,
Ich muß ich den Code erstmal testen !
erik
Bild

Betrifft: AW: demo
von: UweD
Geschrieben am: 11.03.2005 16:12:16
Hallo Eric
So gehts:
die Benutzerdefinierte Eigenschaften werden benutzt

Private Sub Workbook_Open()
    On Error GoTo Neu
weiter:
    If Date - ThisWorkbook.CustomDocumentProperties("Ende").Value > 30 Then
        MsgBox "Sorry zu spät"
        Me.Close savechanges = False
    End If
Exit Sub
Neu: 'wenn er Eintrag noch fehlt, wird er angelegt
    ActiveWorkbook.CustomDocumentProperties.Add Name:="Ende", _
    LinkToContent:=False, Type:=msoPropertyTypeDate, Value:=Date
    Me.Save
    Err.Clear
    GoTo weiter
    'Wert lässt aber sich unter Datei, Eigenschaften, Anpassen einstellen
End Sub

Gruß UweD
Bild

Betrifft: AW: 2 Fragen an Uwe
von: Martin Beck
Geschrieben am: 11.03.2005 16:48:49
Hallo Uwe,
da mich das Thema auch schon länger interessiert, 2 Fragen:
1) Was passiert, wenn der Nutzer beim Öffnen der Datei die Makros nicht aktiviert?
2) Was passiert, wenn der Nutzer, dann wenn die MsgBox kommt, STRG-UNTBR drückt?
Gruß
Martin Beck
Bild

Betrifft: AW: 2 Fragen an Uwe
von: UweD
Geschrieben am: 14.03.2005 08:04:23
Hallo
zu1) Du kannst alle relevanten Blätter ausblenden (oder besser veryhidden setzen). Dann auf ein übriggebliebenes Blatt schreiben, "Läuft nur mit Makroaktivierung"
Beim Start mit Makros werden die Blätter beim Workbookopen eingeblendet und später beim BeforeClose wieder ausgeblendet.

zu2) die Msgbox war nur für das Beispiel gedacht
Das ganze kann natürlich noch sicherer gemacht werden.. (Tasten abschalten etc.)

Aber! Jeder Schutz lässt sich aushebeln... Kommt eben auf das Können der User an...
Gruß Uwe
Bild

Betrifft: AW: demo
von: erik
Geschrieben am: 11.03.2005 17:16:06
Hallo UweD,
bei kommt in der Zeile:

Me.Close savechanges = False
die Fehlermeldung, Variable nicht definiert !
Woran kann das liegen ?
erik
Bild

Betrifft: AW: demo
von: UweD
Geschrieben am: 14.03.2005 07:57:24
Hallo

dann versuch mal anstelle von "Me." "ThisWorkbook."
Gruß UweD
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zellen bereich vergleichen"