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

UserForm soll bei Klick Zeitmessung starten

Forumthread: UserForm soll bei Klick Zeitmessung starten

UserForm soll bei Klick Zeitmessung starten
17.11.2005 10:36:37
Fabio
Hallo,
Über eine UserForm steuere ich ein Messinstrument an, dass bei click auf einen Button in der Userform gestartet wird. Ich würde nun gerne bei Klcik auf den Button zeitgleich zur Startung der Messung im Hintergrund auch eine Zeitmessung starten. Nach Beendigung der Messung wird ein Alert generiert. Die Messwerte werden automatisch in eine Excel-Liste übertragen. Nun möchte ich gerne die Messdauer (von click in der UserForm bis Alert) ebenfalls in die gleiche Excel-Tabelle auslesen lassen.
Wer kann mir da helfen?
Danke und Gruss,
Fabio
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UserForm soll bei Klick Zeitmessung starten
17.11.2005 11:15:40
Heiko
Hallo Fabio,
z.B. mit GetTickCount. Mit in das Codefenster deines Userforms.
Private Declare_Funktion GetTickCount gehört in eine Zeile, wird hier nur falsch dargestellt.
Aber Achtung, bei mehr als 49 Tagen Programmlaufzeit am Stück ist dieser Timer am Ende ;-)
Private Declare

Function GetTickCount Lib "kernel32" () As Long
Public lngTime As Long

Sub DeinMakro()
lngTime = GetTickCount
' Dein kompletter Code
' Dann Ausgabe der Zeit.
MsgBox "Zeitdauer der Messung = " & (GetTickCount - lngTime) / 1000 & " Sekunden !"
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: UserForm soll bei Klick Zeitmessung starten
17.11.2005 17:03:27
Fabio
Hallo Heiko,
Herzlichen Dank für Deine Hilfe. Hat bestens geklappt und Messmaschinchen läuft perfekt. Danke
Gruss,
Fabio
;
Anzeige
Anzeige

Infobox / Tutorial

UserForm für Zeitmessung in Excel nutzen


Schritt-für-Schritt-Anleitung

Um eine Zeitmessung in einer UserForm zu implementieren, kannst du die Funktion GetTickCount in VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge einen neuen UserForm hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen > UserForm.
  3. Füge einen Button hinzu:

    • Ziehe einen Button (CommandButton) auf die UserForm.
  4. Erkläre die Funktion GetTickCount:

    • Füge den folgenden Code in das Codefenster der UserForm ein:
    Private Declare Function GetTickCount Lib "kernel32" () As Long
    
    Public lngTime As Long
    
    Private Sub CommandButton1_Click()
       lngTime = GetTickCount
       ' Hier startest du deine Messung
    
       ' Nach Beendigung der Messung:
       MsgBox "Zeitdauer der Messung = " & (GetTickCount - lngTime) / 1000 & " Sekunden!"
    End Sub
  5. Speichere und teste die UserForm:

    • Schließe den VBA-Editor und teste die UserForm, indem du sie öffnest und auf den Button klickst.

Häufige Fehler und Lösungen

  • Fehler: Run-time error '53': File not found

    • Stelle sicher, dass die Deklaration von GetTickCount korrekt ist und die kernel32-Bibliothek ordnungsgemäß importiert wurde.
  • Fehler: Zeit wird nicht korrekt berechnet

    • Überprüfe, ob der Code zum Starten der Messung vor der Berechnung der Zeit steht.

Alternative Methoden

Falls du GetTickCount nicht verwenden möchtest, gibt es alternative Methoden zur Zeitmessung in Excel VBA:

  1. Verwenden von Timer:

    • Der Timer gibt die Anzahl der Sekunden seit Mitternacht zurück. Hier ein Beispiel:
    Dim startTime As Double
    startTime = Timer
    ' Deine Messung hier
    MsgBox "Zeitdauer der Messung = " & Timer - startTime & " Sekunden!"
  2. Excel-Funktionen:

    • Du kannst auch Excel-Funktionen wie NOW() verwenden, um die Zeit zu erfassen, aber dies ist weniger genau.

Praktische Beispiele

Hier ist ein praktisches Beispiel, wie du die Zeitmessung in einer UserForm umsetzen kannst:

Private Declare Function GetTickCount Lib "kernel32" () As Long

Public Sub StartMeasurement()
    Dim lngTime As Long
    lngTime = GetTickCount

    ' Simuliere eine Messung von 5 Sekunden
    Application.Wait (Now + TimeValue("0:00:05"))

    MsgBox "Zeitdauer der Messung = " & (GetTickCount - lngTime) / 1000 & " Sekunden!"
End Sub

Tipps für Profis

  • Optimierung der Performance: Achte darauf, dass der Code innerhalb des Buttons schnell ausgeführt wird, um die Zeitmessung so präzise wie möglich zu halten.
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um unerwartete Probleme während der Messung zu vermeiden.
  • Dokumentation: Kommentiere deinen Code gut, um zukünftige Anpassungen zu erleichtern.

FAQ: Häufige Fragen

1. Wie lange kann ich GetTickCount verwenden? Die Funktion GetTickCount misst die Zeit bis zu 49.7 Tagen. Danach wird der Zähler zurückgesetzt.

2. Kann ich die Zeitmessung auch in Excel-Formeln verwenden? Ja, du kannst Excel-Funktionen wie NOW() oder TODAY() verwenden, aber sie sind weniger präzise als die Verwendung von GetTickCount in VBA.

3. Wo finde ich weitere Informationen zu GetTickCount? Die offizielle Microsoft-Dokumentation ist eine gute Quelle für weitere Details zur Verwendung von GetTickCount in VBA.

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