Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
852to856
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
852to856
852to856
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeitänderung durch anklicken eines Button

Zeitänderung durch anklicken eines Button
18.03.2007 11:44:00
Torge
Hallo,
kann jemand helfen oder einen Hinweis geben?
Habe aus dem Forum auf Grund meiner Frage vom 17.03.2007 12:29:58 einen Lösungsvorschlag erhalten aber trotzdem noch nicht weiter gekommen. Es geht um die Funktion eine Klickbutton, mit dessen Hilfe ich die Nutzungsdauer einer Datei bei Eingabe von Daten und dem Speichern verkürzen kann. Und dies darf nur ein einziges Mal passieren nämlich beim ersten speichern. Beim erneuten speichern darf sich die Zeit nicht mehr ändern, da die Datei dann nach 2 Tagen gelöscht werden soll.
Hier ist der Hinweis den ich erhalten habe:
Eine Zelle, in der das Prüfdatum steht, ist erforderlich - und du kannst die Zelle ja anpassen - und natürlich auch ausblenden usw.
Damit dieser Vorgang nur 1x passiert (reicht ja), kannst du mit einer globalen Variabel arbeiten.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If varEinmal = False Then
ThisWorkbook.Sheets(1).Range("A1").Value = Date + 2
varEinmal = True
End If
End Sub

Diese Variabel - hier varEinmal - muss im allgemeinen Modul mit Public deklariert werden.
Und hier ist mein Code den ich benutzte für die aktuelle Nutzungsdauer:
Ablaufdatum = "15.12.2007"
'löschen wenn Ablaufdatum erreicht
ElseIf Sheets("Fin.-Anfrage").Range("J40") = 0 And DateDiff("d", Date, Ablaufdatum) MsgBox "Die Nutzungsdauer ist endgültig überschritten" _
& vbCr & "die Datei wird gelöscht."
ActiveWorkbook.ChangeFileAccess xlReadOnly
Kill ActiveWorkbook.FullName
ThisWorkbook.Close False
'Hinweis anzeige 30 Tage vorher
ElseIf Sheets("Fin.-Anfrage").Range("J40") = 0 And DateDiff("d", Date, Ablaufdatum) Dim Antwort
Antwort = MsgBox("Diese Programmversion kann nur noch kurze Zeit genutzt werden.", _
vbOKOnly + vbInformation, "Systeminformation", "", 0)
End If
Wie kann ich beides miteinander verknüpfen, kann jemand einen Hinweis geben oder helfen?
Vielen Dank
Gr. T.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nutzungsdauer einer Datei
18.03.2007 12:06:00
Matthias
Hi,
Nutzungsdauer eines Programms eingrenzen
Beispiel:

Private Sub Workbook_Open()
If Date >= CDate("18.03.2007") Then
MsgBox "abgelaufene Version !!"
ThisWorkbook.Close
End If
End Sub
Vielleicht hilft Dir ja der Tipp mit CDate ein Stück weiter.
Gruß Matthias
AW: Nutzungsdauer einer Datei
18.03.2007 12:36:00
Torge
Hallo Mathias,
vielen Dank für den Hinweis. Ganz kurz vielleicht noch einmal, dass Ablaufdatum habe ich bei mir mit Ablaufdatum = "15.12.2007" festgelegt, funktioniert auch. Beim speichern der Datei könnte nun durch die Betätigung des Button die Zeit, wie beschrieben in eine Zelle fest geschrieben werden, sagen wir mal zb. AJ1. Diese Zelle ist zunächst leer, weil die Datei ja nicht neu gespeichert wurde. Der Speicherbutton in dem Tabellenblatt erscheint erst bei Eingabe in einer bestimmten Zelle. Da nun die Datei gespeichert werden muss soll mit dem speichern ein neues Datum + 2 Tage zb. in eine Zelle festgeschrieben werden, was sich bei erneuten speichern zb. einen Tag später aber nicht ändern darf. Ist es möglich diese Zelle abzufragen, wenn dort das Datum drin steht, das sollte dann auch das neue Ablaufdatum der Datei sein, ansonsten soll das alte Ablaufdatum gelten. Ich habe meine Code mit dem Ablaufdatum in ein Modul gelegt. Kann man diese Prozedur dann auch beim öffnen der Mappe abfragen?
Gr. T.
Anzeige
AW: Nutzungsdauer einer Datei
18.03.2007 13:26:00
Matthias
Hi,
Ich habe die Zeit jetzt in AJ1 stehen.
Das Datum steht in CDate

Private Sub Workbook_Open()
If Date >= CDate("18.12.2007") Then
MsgBox "1.bedingung erfüllt Datum erreicht"  'nur zu Testzwecken
If Time > Sheets("Tabelle1").Cells(1, "AJ").Value Then
MsgBox "abgelaufene Version !!"
ThisWorkbook.Close
End If
End If
End Sub

AW: Nutzungsdauer einer Datei
18.03.2007 13:48:00
Torge
Hallo Mathias,
vielen Dank. Letzte Frage: Du sagst "Das Datum steht in CDate", gehst Du dabei davon aus, dass das Datum bei Dir im Code steht? Mein Anliegen wäre ja, dass das Datum "CDate("18.12.2007")", welches ja nicht vorgegeben sein darf nur bei speichern der Datei in die Zelle eingetragen werden soll. Hintergrund ist, solange die Datei ohne Daten ist, soll sie sich zb. nach einem Monat bei öffnen selbst löschen, da Nutzungsdauer überschritten wurde. Sind nun Daten in der Datei, sprich in dem Tabellenblatt, wird das Datum beim speichern in die Zelle eingetragen und das kann jeder x - beliebige Tag sein. Ist nur noch einmal zu besseren Verständnis für mich.
Vielen, vielen Dank an der Stelle schon mal.
gr. T.
Anzeige
AW: Nutzungsdauer einer Datei
18.03.2007 14:52:37
Matthias
Hi,
Das aktuelle Datum wird mit dem in CDate eingetragenem Datum verglichen.
Ist das Datum gleich oder grösser dem Datum, welches in CDate eingetragen ist, wird der Code ausgeführt.
Ich bin jetzt kurz angebunden, schau heute abend nochmal rein. Sorry
Gruß Matthias
AW: Nutzungsdauer einer Datei
18.03.2007 15:46:00
Torge
Hallo Mathias,
das ist dann klar. Aber das Datum sollte nach Möglichkeit nicht im Code stehen, da nicht feststeht, wann Daten in das Tabellenblatt eingetragen werden und das Ablaufdatum sich ergibt. Das darf definitiv nur über eine Klickereignis eines Button erfolgen, d.h. wenn es geht. Es sollte auf keinen Fall fest vorgegeben sein. In Deinem Fall steht es doch im Code ("CDate("18.12.2007")". Geht dies noch wie von mir beschrieben zu ändern. Ich habe ein Feld in dem steht der Wert 2, wenn keine Änderung im Tabellenblatt erfolgte. Wurde in einer bestimmten Zelle etwas geändert, wird der Wert 2 durch die 0 ersetzt, das heißt bei 0 soll in einer weiteren Zelle das Ablaufdatum + 2 Tage stehen.(Wobei Ablaufdatum ja nicht vorgegeben ist, also kann es auch nirgends stehen, sondern muss sich ergeben.Nun bräuchte man ja nur noch die Zelle auslesen und dieses Datum als Ablaufdatum nehmen, aber ich weiß eben nicht wie. Hoffe ist nicht so schwierig zu lösen.
Aber vielen Dank für Deine Hilfe.
Gr. T.
Anzeige
neuer Versuch
18.03.2007 19:24:38
Matthias
Hi
Beispiel!
Option Explicit

Sub Pruefen()
Dim Ablaufdatum As String                   'Variable deklarieren
Ablaufdatum = Cells(10, 1).Value            'DatumsString aus A10 ihn die Variable schreiben
MsgBox Ablaufdatum                          'Kontrollbox (kann später gelöscht werden)
If CDate(Ablaufdatum) 
In der Zelle A10 steht das Datum und wird in die Variable Ablaufdatum geschrieben.
An CDate wird das Ablaufdatum dann als Variable übergeben.
In diese Zelle schreibst Du je nachdem ob nun Deine überwachte Zelle 0 oder 2 ergibt Dein Datum rein.
Hilft das weiter
Gruß Matthias
Anzeige
AW: neuer Versuch
18.03.2007 20:39:45
Torge
Hallo Matthias,
vielen Dank hilft weiter, nun kommst hin.
Wünsch Dir eine schöne Woche, bis zum nächsten mal und Danke noch einmal.
Gr. Torge

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige