Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

fotlaufende uhrzeit in userform

Forumthread: fotlaufende uhrzeit in userform

fotlaufende uhrzeit in userform
Sonja
hallo excel gemeinde,
ich habe wieder mal ein kleines problem und hoffe das mir jemand helfen kann.
ich habe nachfolgenden vba code, in dem wird die fortlaufende uhrzeit in einer userform angezeigt.
nun bräuchte ich aber nicht die aktuelle uhrzeit sondern eine fortlaufende differenz.
zb. steht in der tabelle1 "a1" eine uhrzeit 9:00:00 Uhr, wenn jetzt eine stunde vergangen ist müste
die uhrzeit in der userform 1:00:00 stunde zeitdifferenz anzeigen.
######Option Explicit
Private UhrAktiv As Boolean
Public Sub Start()
UhrAktiv = True
Call MeineSchleife
End Sub
Public Sub Stopp()
UhrAktiv = False
End Sub
Public Sub MeineSchleife()
UserForm1.Label1.Caption = Format(Time, "long time")
UserForm1.Repaint
If UhrAktiv Then
Application.OnTime Now + TimeValue("00:00:01"), "MeineSchleife"
End If
End Sub

#####
danke schon im voraus
grus sonja
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: fotlaufende uhrzeit in userform
03.04.2011 15:03:30
Nepumuk
Hallo,
einfach so:
UserForm1.Label1.Caption = Format(Time - _
    Worksheets("Tabelle1").Cells(1, 1).Value, "long time")

Gruß
Nepumuk
Anzeige
AW: Danke
03.04.2011 15:11:17
Sonja
vielen dank nepumuk,
es klappt wunderbar
liebe grüße sonja
AW: fotlaufende uhrzeit in userform
03.04.2011 20:04:46
ing.grohn
Hallo Sonja, Hallo Nepumuk,
funktioniert aber, läßt sich das Flackern des BS verhindern?
Mit freundlichen grüßen
Albrecht
AW: fotlaufende uhrzeit in userform
03.04.2011 21:17:25
Nepumuk
Hallo,
du kannst die Repaint-Methode auch weg lassen. Bei der Geschwindigkeit mit der neue Daten kommen hat das Label keine Probleme diese auch anzuzeigen.
Gruß
Nepumuk
Anzeige
AW: fotlaufende uhrzeit in userform
03.04.2011 21:59:58
ing.grohn
Hallo Nepumuk,
vielen Dank,
einen schönen Abend mit freundlichen grüßen
Albrecht
AW: fotlaufende uhrzeit in userform
03.04.2011 22:02:02
ing.grohn
Hallo Nepumuk,
so ists besser, vielen Dank!
Mit freundlichen Grüßen
Albrecht
;
Anzeige
Anzeige

Infobox / Tutorial

Fortlaufende Uhrzeit in UserForm mit Excel VBA


Schritt-für-Schritt-Anleitung

  1. UserForm erstellen: Öffne Excel und erstelle eine neue UserForm. Füge ein Label (z.B. Label1) hinzu, das die Uhrzeit anzeigen wird.

  2. VBA-Code einfügen: Öffne den VBA-Editor (Alt + F11) und füge den folgenden Code in das Modul der UserForm ein:

    Option Explicit
    Private UhrAktiv As Boolean
    
    Public Sub Start()
        UhrAktiv = True
        Call MeineSchleife
    End Sub
    
    Public Sub Stopp()
        UhrAktiv = False
    End Sub
    
    Public Sub MeineSchleife()
        UserForm1.Label1.Caption = Format(Time - Worksheets("Tabelle1").Cells(1, 1).Value, "long time")
        If UhrAktiv Then
            Application.OnTime Now + TimeValue("00:00:01"), "MeineSchleife"
        End If
    End Sub
  3. Uhrzeit in Zelle eingeben: Trage in Zelle A1 von Tabelle1 eine Uhrzeit ein, z.B. 09:00:00.

  4. UserForm anzeigen: Du kannst die UserForm über ein weiteres Makro oder direkt im VBA-Editor starten.


Häufige Fehler und Lösungen

  • Fehler: UserForm bleibt leer

    • Lösung: Stelle sicher, dass die UserForm korrekt geladen wird und der VBA-Code richtig implementiert ist. Überprüfe auch, ob die Zelle A1 eine gültige Uhrzeit enthält.
  • Fehler: Uhrzeit aktualisiert sich nicht

    • Lösung: Überprüfe, ob die UhrAktiv-Variable wahr ist und ob der Application.OnTime-Befehl korrekt aufgerufen wird.

Alternative Methoden

Eine alternative Methode zur Anzeige einer fortlaufenden Uhrzeit wäre die Verwendung von Excel-Formeln statt VBA. Du könntest die Funktion =JETZT() in einer Zelle verwenden und die Differenz zur Zeit in A1 berechnen. Dies würde jedoch nicht in einer UserForm angezeigt werden.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie der VBA-Code in der UserForm aussieht:

Public Sub MeineSchleife()
    UserForm1.Label1.Caption = Format(Time - Worksheets("Tabelle1").Cells(1, 1).Value, "hh:mm:ss")
    UserForm1.Repaint
    If UhrAktiv Then
        Application.OnTime Now + TimeValue("00:00:01"), "MeineSchleife"
    End If
End Sub

Wenn in Tabelle1 in A1 die Uhrzeit 09:00:00 steht und eine Stunde vergangen ist, wird im Label Label1 der Wert 01:00:00 angezeigt.


Tipps für Profis

  • Performance verbessern: Um Flackern zu vermeiden, kannst du die Repaint-Methode weglassen, da die Anzeige ausreichend schnell aktualisiert wird.

  • Uhrzeit anpassen: Verwende Format(Time, "hh:mm:ss"), um die Zeit in einem anderen Format darzustellen, falls gewünscht.


FAQ: Häufige Fragen

1. Wie kann ich die UserForm automatisch starten?
Du kannst die UserForm im Workbook_Open-Ereignis starten, indem du den folgenden Code im ThisWorkbook-Modul verwendest:

Private Sub Workbook_Open()
    UserForm1.Show
End Sub

2. Was passiert, wenn die Uhrzeit in der Zelle geändert wird?
Die UserForm wird nicht automatisch aktualisiert. Du müsstest den Code anpassen, um die Uhrzeit bei Änderungen in A1 neu zu berechnen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige