Laufende Uhrzeit in der Statuszeile anzeigen

Mit dem in Excel integrierten Wecker kann bei Angabe einer Uhrzeit ein beliebiges Makro ausgeführt werden. Um fortlaufend die Uhrzeit im Sekundentakt anzuzeigen, stellen Sie in einem Makro den Wecker immer auf die aktuelle Zeit puls eine Sekunde und teilen ihm mit, das er das gleiche Makro immer wieder aufrufen soll. Gehen Sie dabei wie folgt vor.

Starten Sie mit der Tastenkombination [Alt] + [F11] die VBA Entwicklungsumgebung und erfassen Sie in einem neuen Modul-blatt den VBA-Code aus Listing 1.

Listing 1: Uhrzeit in Statusleiste anzeigen
Public Const makro As String = "uhrzeit"
Public nexttime

Sub uhrzeit()
  Application.StatusBar = "Zeit:" & Format(time, "hh:mm:ss")
  nexttime = Now + TimeValue("00:00:01")
  Application.OnTime nexttime, makro
End Sub

Als erstes wird eine öffentliche Konstante mit dem Namen makro definiert. Dieser Konstante wird der Prozedurname uhrzeit zugewiesen. Im zweiten Schritt erfolgt die Deklaration einer öffentlichen Variable mit der Bezeichnung nexttime.

In der Prozedur uhrzeit wird in der ersten Zeile die aktuelle Uhrzeit in der Statusleiste dargestellt. Anschließend wird die aktuelle Uhrzeit errechnet, indem zur aktuellen Zeit eine Sekunde addiert wird. Über den Aufruf Application.Ontime starten Sie nun den Wecker, wobei Sie als ersten Parameter die Weckzeit und als zweiten Parameter den Namen des Makros angeben, welches zu der entsprechenden Zeit ausgeführt werden soll.

In diesem Beispiel wird das Makro uhrzeit ausgeführt, welches über die öffentliche Konstante makro angesprochen wird. Nachdem das Makro manuell einmal gestartet wurde, ruft es sich jede Sekunde selbst auf und aktualisiert so die Uhrzeit in der Statusleiste. Soll bei jedem Excelstart die laufende Uhrzeit in der Statusleiste angezeigt werden, dann tragen Sie diesen Code im Modul DieseArbeitsmappe als Auto-Open Makro Workbook_Open ein.

laufende uhrzeit statusleiste

Zum Beenden der Uhrzeitanzeige in der Statusleiste benötigen Sie eine weitere Prozedur, siehe Listing 2.

Listing 2: Beenden der Uhrzeitanzeige
Sub uhrzeit_beenden()
  On Error Resume Next
  Application.OnTime earliesttime:=nexttime, procedure:=makro, schedule:=False
  Application.StatusBar = ""
End Sub

Der Befehl Application.OnTime earliesttime:=nexttime, procedure:=makro, schedule:=False verhindert eine erneute Ausführung der OnTime Prozedur und unterbindet somit die Anzeige einer aktualisierten Uhrzeit.

Anschließend wird die Statusleiste durch die Zuweisung einer leeren Zeichenfolge in den Ursprungszustand zurückgesetzt. Damit wird die Uhrzeit ausgeblendet und der Standardzustand der Statusleiste angezeigt.

Partnerlinks

Relevante Artikel

Ihre Zufriedenheit ist unser Ziel, deshalb verwenden wir Cookies. Mit diesen ermöglichen wir, dass unsere Webseite zuverlässig und sicher läuft, wir die Performance im Blick behalten und Sie besser ansprechen können. Cookies werden benötigt, damit technisch alles funktioniert und Sie auch externe Inhalte lesen können. Des Weiteren sammeln wir unter anderem Daten über aufgerufene Seiten, getätigte Käufe oder geklickte Buttons, um so unser Angebot an Sie zu Verbessern. Mehr über unsere verwendeten Dienste erfahren Sie unter „Weitere Informationen“. Mit Klick auf „Akzeptieren“ erklären Sie sich mit der Verwendung dieser Dienste einverstanden. Ihre Einwilligung können Sie jederzeit mit Wirkung auf die Zukunft widerrufen oder ändern.