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

laufende Uhrzeit in Userform Label

Forumthread: laufende Uhrzeit in Userform Label

laufende Uhrzeit in Userform Label
Kay
Hallo,
..ich weiß und ja, ich habe im Archiv gesucht und viele Beiträge zu diesem Thema bereits gefunden, einiges ausprobiert und leider muss ich sagen - bei mir funktioniert es nicht richtig - warum ?!
https://www.herber.de/forum/archiv/160to164/t162874.htm#162874
Habe den Text genau so genommen, nur die Label-Bezeichnung angepasst und in der Prozedure
Userform_Initialize per Call Start aufgerufen ?!
Gruß und Danke
Kay
Anzeige
AW: laufende Uhrzeit in Userform Label
29.07.2009 22:49:36
Ramses
Hallo
Nachdem das Beispiel funktioniert und bei dir nicht richtig !? wäre es interessant zu wissen , WAS nicht funktioniert.
Wir sind keine Hellseher,... alternativ solltest du die Datei hochladen in der es nicht funktioniert
Gruss Rainer
AW: laufende Uhrzeit in Userform Label
29.07.2009 23:13:37
Kay
Guten Abend Reiner,
...leider kann ich die Datei nicht hochladen, da sie sehr komplex ist (38 Tabellenblätter, ca. 24MB Groß und ca. 25 Userformen sind darin)...zudem noch viele "Vertrauliche Kundendaten".
Aber hier der Code den ich verwendet habe...mal schauen, wenn meine Augen nicht gleich zufallen - versuche ich noch schnell eine "Musterdatei" zu erstellen und lade Sie nach.
Sub Start()
Intervall = Now + TimeValue("00:00:01")
t = Format(Time, "hh:mm:ss")
UF2_SBS.LTime.Caption = t
Application.OnTime Intervall, "Start"
End Sub
Sub Stopp()
On Error Resume Next
Application.OnTime Intervall, "Start", , False
End Sub
Private Sub Userform_Initialize()
If Worksheets("Basic").Cells(3,10).Text = " " then
UF3_ADM.show
End if
Call Start ' Aufruf der Prozedure Start - Label soll in Userform "laufende Uhrzeit" anzeigen
LDate.Caption = Format(CDate(Date), "dd.mmmm yyyy"
LATEd.Caption = Format(CDate((Application.WorksheetFunction.Max(ThisWorkbook.Sheets("ATE").Range("BZ:BZ")))),"dd.mmm.yyyy")
CB1.RowSource = "ATE_Basis"
CB1.ListIndex = 0
End Sub
Anzeige
AW: laufende Uhrzeit in Userform Label
29.07.2009 23:27:45
Uduuh
Hallo,
ca. 24MB Groß 

wie machst du das?
Gruß aus’m Pott
Udo

AW: laufende Uhrzeit in Userform Label
30.07.2009 08:39:04
k
Morgen,...wenn ich das wüsste ?
Sie fing mal klein an...ca. 1-2 MB mit verdammt vielen Datensätzen. Dann kamen einige Diagramme und Pivots dazu...dann einige Berechnungen (Datenbankformel und Arrayformeln in erster Linie) und dann die VBA-Teile.
Werde wenn die Datei soweit steht und nahezu100%ig funktioniert versuchen sie wieder zu verkleinern.
Denke dass die Formeln (locker über 20.000 den größten Anteil davon haben...oder ?).
OK, ein kleines Bild (*.gif-Datei mit 56 KB) ist auch drin - weiß nicht ob Excel daraus etwas macht, was die Datei aufbläht ?!
Will als nächstes, wenn die Userformen alle laufen....die meisten Formeln per VBA laufen lassen "temporär", d.h. wenn Ein Datensatz angelegt wird - steht erstmal eine Formle drin, lasse es berechnen und stelle dann den festen Wert ein. (Kopieren, Wert einfügen) und andere Dinge lasse ich über die Userform berechnen und anzeigen, wenn der Datensatz aufgerufen wird --- soweit es eben geht.
Was könnte es noch alles sein, was eine Datei so aufbläht ?!
Wie gesagt viele der Datenblätter sind mit umfangreichen Tabellen versehen (Produktblätter mit ca. 25.000 Zeilen und 67 Spalten), Kundendatenblätter (ca. 50.000 Zeilen und 44 Spalten), Auftragsblätter, Umsatzauswertungen, Kundenanalysen, Produktanaylsen, Standortdaten etc. ....
Habe auch vor gehabt, die Datei zu teilen und per Verknüpfung arbeiten zu lassen...aber kann nicht immer Sicherstellen - dass alle dann den Zugriff haben, bzw. wenn einer mal eine Datei löscht - war es das...
Access wäre auch noch eine Option...mal schauen, aber da habe ich auch schon seit einigen Jahren nicht mehr aktiv mit gearbeitet, nur noch bearbeitet.
Gruß
Kay
Anzeige
AW: laufende Uhrzeit in Userform Label
30.07.2009 07:34:04
fcs
Hallo Kay,
es funktioniert, wenn die Start- und Stopp-Prozedur in einem allgemeinen Modul angelegt sind. Wichtig ist auch, dass die Variable "Intervall" als Public deklariert ist, damit der Wert beiden Prozeduren zu Verfügung steht.
Außerdem solltest du im UF die Terminate-Ereignisprozedur anlegen, in der die Stopp-Prozedur aufgerufen wird.
Gruß
Franz
'Code in einem allgemeinen Modul zur Anzeige der Zeit im UF
Option Explicit
Public Intervall
Sub Start()
'Uhrzeitanzeige im Userform
Dim t As String
Intervall = Now + TimeValue("00:00:01")
t = Format(Time, "hh:mm:ss")
UF2_SBS.LTime.Caption = t
Application.OnTime Intervall, "Start"
End Sub
Sub Stopp()
On Error Resume Next
Application.OnTime Intervall, "Start", , False
End Sub
'Code im Userform

Private Sub CommandButton1_Click() 'Schließenbutton
Unload Me
End Sub
Private Sub Userform_Initialize()
If Worksheets("Basic").Cells(3, 10).Text = " " Then
UF3_ADM.Show
End If
Call Start ' Aufruf der Prozedure Start - Label soll in Userform "laufende Uhrzeit" anzeigen
LDATE.Caption = Format(Date, "dd.mmmm yyyy")
LATEd.Caption = Format(CDate((Application.WorksheetFunction.Max( _
ThisWorkbook.Sheets("ATE").Range("BZ:BZ")))), "dd.mmm.yyyy")
CB1.RowSource = "ATE_Basis"
CB1.ListIndex = 0
End Sub
'Zusätzlicher Code im Userform - Beendet Timer beim Schließen des UF
Private Sub UserForm_Terminate()
Call Stopp
End Sub

Anzeige
AW: laufende Uhrzeit in Userform Label
30.07.2009 08:43:26
k
Guten Morgen Franz...
Danke perfekt, so läuft es ;o)
Das mit dem Modul - wann da welche Teile eines Codes rein sollen habe ich noch nicht ganz drauf, dachte wenn ich die Prozedur in der UF-Code-Seite stehen habe müsste es doch sogar besser sein - da es ja hier gebraucht wird ?!
Gruß und Vielen Dank !
Kay
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Laufende Uhrzeit in Userform Label anzeigen


Schritt-für-Schritt-Anleitung

Um eine laufende Uhrzeit in einem Userform-Label in Excel anzuzeigen, kannst Du folgenden Code verwenden:

  1. Allgemeines Modul erstellen:

    • Öffne den VBA-Editor (ALT + F11).
    • Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).
    • Kopiere den folgenden Code in das Modul:
    Option Explicit
    Public Intervall As Date
    
    Sub Start()
       ' Uhrzeitanzeige im Userform
       Dim t As String
       Intervall = Now + TimeValue("00:00:01")
       t = Format(Time, "hh:mm:ss")
       UF2_SBS.LTime.Caption = t
       Application.OnTime Intervall, "Start"
    End Sub
    
    Sub Stopp()
       On Error Resume Next
       Application.OnTime Intervall, "Start", , False
    End Sub
  2. Userform erstellen:

    • Erstelle eine Userform und füge ein Label hinzu, um die Uhrzeit anzuzeigen (z.B. LTime).
    • Füge einen Schließen-Button hinzu und kopiere den folgenden Code in den Userform-Code:
    Private Sub CommandButton1_Click() 'Schließenbutton
       Unload Me
    End Sub
    
    Private Sub Userform_Initialize()
       Call Start ' Aufruf der Prozedure Start - Label soll in Userform "laufende Uhrzeit" anzeigen
    End Sub
    
    Private Sub UserForm_Terminate()
       Call Stopp
    End Sub
  3. Benutze die Userform:

    • Zeige die Userform mit UF2_SBS.Show auf, um die laufende Uhrzeit anzuzeigen.

Häufige Fehler und Lösungen

  • Fehler: Uhrzeit wird nicht aktualisiert

    • Stelle sicher, dass die Start- und Stopp-Prozeduren in einem allgemeinen Modul deklariert sind und dass das Label korrekt benannt ist.
  • Fehler: Intervall nicht verfügbar

    • Achte darauf, dass die Variable Intervall als Public deklariert ist, damit sie in beiden Prozeduren verwendet werden kann.
  • Fehler: Userform schließt sich sofort

    • Überprüfe, ob der Terminate-Ereigniscode korrekt implementiert ist, um den Timer beim Schließen der Userform zu stoppen.

Alternative Methoden

Eine alternative Methode, um die laufende Uhrzeit anzuzeigen, ist die Verwendung von Excel-Formeln in Kombination mit VBA. Du könntest eine Zelle in Excel verwenden, um die aktuelle Uhrzeit zu berechnen und diese Zelle im Label anzeigen.

LTime.Caption = Format(Sheets("Tabelle1").Range("A1").Value, "hh:mm:ss")

Hier wird die Uhrzeit aus Zelle A1 angezeigt, die kontinuierlich aktualisiert werden kann.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du die laufende Uhrzeit in einer Userform anzeigen kannst:

Private Sub Userform_Initialize()
    LTime.Caption = Format(Time, "hh:mm:ss")
    Call Start
End Sub

Wenn Du die Userform öffnest, wird sofort die aktuelle Uhrzeit angezeigt, und sie wird jede Sekunde aktualisiert.


Tipps für Profis

  • Verwende Application.OnTime, um die laufende Uhrzeit in verschiedenen Intervallen anzuzeigen. Du kannst das Intervall anpassen, um die Aktualisierungsfrequenz zu ändern.
  • Teste unterschiedliche Formate für die Uhrzeit, um das Layout Deiner Userform zu optimieren. Zum Beispiel hh:mm für eine kompaktere Darstellung.
  • Denke daran, dass eine klare Benennung der Labels die Wartung Deines Codes erleichtert.

FAQ: Häufige Fragen

1. Frage Wie kann ich die laufende Uhrzeit in einem anderen Format anzeigen?

Antwort: Du kannst das Format in der Format-Funktion anpassen, z.B. Format(Time, "hh:mm") für Stunden und Minuten.

2. Frage Was kann ich tun, wenn die Userform nicht richtig reagiert?

Antwort: Überprüfe, ob alle Prozeduren und Variablen korrekt deklariert sind und ob die Userform ordnungsgemäß initialisiert wird.

3. Frage Kann ich die Uhrzeit auch in einer Zelle anzeigen?

Antwort: Ja, Du kannst die gleiche Logik verwenden und die Uhrzeit in eine Zelle schreiben, indem Du Sheets("DeinBlatt").Range("A1").Value = Format(Time, "hh:mm:ss") verwendest.

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