AW: Datum/Uhrzeit
04.05.2007 14:11:32
ingUR
Hallo, Toni,
vielleicht können dir diese Programmzeilen als Grundgerüst dienen, Deine Vorstellungen über die "Erinnerung" an den "Termin" unmzusetzen.
Option Explicit
Const ZIELDATE = "01.11.07 2:00"
Private Sub Worksheet_Activate()
Dim zielD As Date, heuteD As Date, ZeitT As Date
Dim Zeitspanne As Double, RestZeit As Double
Dim anzMonate As Integer, anzWochen As Integer, anzTage As Integer
Dim anzStd As Integer, anzMin As Integer
Dim strMsg
zielD = ZIELDATE
heuteD = Now()
Zeitspanne = zielD - heuteD
'Berechne Anzahl der vollen verbleibenden Monate
anzMonate = Month(zielD) - Month(heuteD)
If Day(zielD) < Day(heuteD) Then anzMonate = anzMonate - 1
'Berechne Restzeit nach abzug der Monate
ZeitT = Day(heuteD) & "." & Month(heuteD) + anzMonate & "." & Year(heuteD)
RestZeit = zielD - (ZeitT + heuteD - CLng(heuteD))
anzWochen = RestZeit / 7
RestZeit = RestZeit - 7 * anzWochen
anzTage = Int(RestZeit)
RestZeit = 24 * (RestZeit - anzTage)
anzStd = Int(RestZeit)
anzMin = 60 * (RestZeit - anzStd)
'Verketten
strMsg = "Es ist heute der " & heuteD & " und es sind nur noch " & vbLf
If anzMonate > 0 Then
strMsg = strMsg & anzMonate & " Monat"
If anzMonate > 1 Then strMsg = strMsg & "e"
If anzWochen + anzTage + anzStd + anzMin > 0 Then strMsg = strMsg & " und "
End If
If anzWochen > 0 Then
strMsg = strMsg & anzWochen & " Woche"
If anzWochen > 1 Then strMsg = strMsg & "n"
If anzTage + anzStd + anzMin > 0 Then strMsg = strMsg & " und "
End If
If anzTage > 0 Then
strMsg = strMsg & anzTage & " Tag"
If anzTage > 1 Then strMsg = strMsg & "e"
If anzStd + anzMin > 0 Then strMsg = strMsg & " und "
End If
If anzStd > 0 Then
strMsg = strMsg & anzStd & " Stunde"
If anzStd > 1 Then strMsg = strMsg & "n"
If anzMin > 0 Then strMsg = strMsg & " und "
End If
If anzMin > 0 Then
strMsg = strMsg & anzMin & " Minute"
If anzMin > 1 Then strMsg = strMsg & "n"
End If
strMsg = strMsg & vblf & "bis ..... kommt"
MsgBox strMsg
End Sub
Das Programm ist in den Tabellenordner (z.B. Tabbelle 1) des Microsoft-EXCEL-Objekte-Ordners des Projekts abzulegen. Bei jeder Aktuivierung dieses Tabellenblattes, erscheint das Nachrichtenfenster. Für die ... kannst Du natürlich das Ereignis setzen oder den Namen der zum Termin erwartet wird.
Natürlich kann der Text auch in eine Zelle ausgegeben werden: Range("G1")=strMsg
Ich hoffe, das mir bei der Programmierung der Berechnung kein Fehler unterlaufen ist.
Gruß und alles Gute,
Uwe