Tipps & Tricks 07.09.2002, 18:15 Uhr

Zeitvergleich in Excel

Ich möchte mit der Funktion =JETZT() die aktuelle Uhrzeit mit einer manuell eingegebenen Uhrzeit abgleichen. Die Zellen in den Spalten A und B haben das Format «h:mm». Beispiel: Formel in C1 =WENN(A1=B1;1;0). In der Zelle A1 steht =JETZT(). Da es gerade 18:00 Uhr ist gebe in B1 18:00 ein und erwarte in C1 als Ausgabe eine 1, da ja beide Zellen 18:00 anzeigen. Es klappt aber nicht C1 gibt eine 0 aus. Ausserdem: Wie kriege ich es hin, dass die Systemuhrzeitautomatisch aktualisiert wird, und ich nicht immer F9 drücken muss? Kann man (ohne VBA) erreichen, das die Uhr in der Zelle «mitläuft»? Wenns nur mit VBA geht wäre ich für den Code dankbar.
Beginnen wir mal mit der Formel, die die beiden Zeiten vergleichen sollen. Formatieren Sie die Spalte B, in welcher Sie die Zeit manuell eintragen im Format "TEXT". Die aktuelle Systemzeit, die Sie über "=Jetzt()" ermittelt haben können Sie im Format "h:mm" belassen. Diese wird dann beim Vergleich in der Wenn-Formel in Text umgewandelt. Die Formel in Zelle C2 muss also wie folgt lauten:
Wird nun die aktuelle Systemzeit aktualisiert, erhalten sie in Spalte C das richtige Ergebnis.
Nun zum zweiten Problem. Um die Systemzeit automatisch zu aktualisieren, benötigen Sie 2 Makros. Eines, dass die Berechnung durchführt, und eines, das angibt in welchen Zeitabständen dies geschehen soll. Erstellen sie die folgenden beiden Makros in einem Modul.
Zurzeit wird alle 5 Sekunden das Makro "Berechnen" ausgeführt, das gleich hinterher das Makro "Zeit" aufruft, welches erneut 5 Sekunden wartet und dann wieder berechnet. Sobald die Datei geöffnet wird, soll auch das Makros gestartet werden. Dazu fügen Sie folgenden Code unter "DieseArbeitsmappe" ein, damit wird eine ständige Aktualisierung sichergestellt.
-----------------------------------------
Die Makros zum Kopieren. Ersetzen Sie alle
"" durch Anführungs- und Schlussstriche!
-----------------------------------------
Sub Berechnen()
Calculate
Call Zeit
End Sub
-----------------------------------------
Sub Zeit()
Application.OnTime Now _
+ TimeValue("00:00:05"), _
"Berechnen"
End Sub
-----------------------------------------
Private Sub Workbook_Open()
Call Berechnen
End Sub
-----------------------------------------



Kommentare
Es sind keine Kommentare vorhanden.