Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema ToggleButton
BildScreenshot zu ToggleButton ToggleButton-Seite mit Beispielarbeitsmappe aufrufen

Start- , Lauf- und Stopzeit | Herbers Excel-Forum


Betrifft: Start- , Lauf- und Stopzeit von: Dirk R.
Geschrieben am: 25.01.2010 08:41:06

Hallo Excelgemeinde,

ich hoffe auf eure Hilfe bei folgendem Problem.

In einer UF habe ich 3 Textboxen und einen ToggleButton. Betätige ich den ToggleButton so wird die aktuelle Uhrzeit in eine Textbox geschrieben. In einer anderen wird nun die Laufzeit angezeigt. Betätige ich wieder den ToggleButton, so wird die Stopzeit in die 3. Textbox geschrieben. Das funzt soweit auch ganz gut, aber......

Leider kommt es dabei vor, dass die Addition von Startzeit und Laufzeit nicht mit der Stopzeit übereinstimmt.
Aber genau dies sollte mein Code tun!?!?!

Kann mir jemand helfen?
Hier mein bisheriger Code:

Option Explicit
Private Declare Sub GetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)

Private Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type

Public Function Now() As Double
  Dim Jetzt As SYSTEMTIME
  GetLocalTime Jetzt
    With Jetzt
      Now = DateSerial(.wYear, .wMonth, .wDay) + TimeSerial(.wHour, .wMinute, .wSecond) + _
        (1# / (24# * 3600000#)) * .wMilliseconds
    End With
End Function
Private Sub ToggleButton1_Click()
Dim Start As Double, Ende As Double, Zeit As Double

If ToggleButton1 Then
tbxStop.Value = ""
ToggleButton1.Caption = "Stop"
Start = Round(Now(), 6)
tbxStart.Value = Format(Start, "hh:mm:ss")
  Do
  Zeit = Round(Now() - Start, 6)
  tbxZeit.Value = Format(Zeit, "hh:mm:ss") 'Format(Now() - Start, "hh:mm:ss")
  DoEvents
  If Not ToggleButton1 Then Exit Do
  If Not frmZeitmessung.Visible Then Exit Do
  Loop
Else
Ende = Round(Now() - Start, 6)
tbxStop.Value = Format(Ende, "hh:mm:ss")
ToggleButton1.Caption = "Start"
End If
End Sub
Ich hoffe auf eure Hilfe!
Gruß
Dirk R.

  

Betrifft: AW: Start- , Lauf- und Stopzeit von: Hajo_Zi
Geschrieben am: 25.01.2010 08:47:52

Hallo Dirk,

Du hast die Zeit schon investiert um das Teil zu erstellen, warum müssen wir das nochmal?
An einem Beispiel löst es sich schneller.

GrußformelHomepage


  

Betrifft: AW: Start- , Lauf- und Stopzeit von: Dirk R.
Geschrieben am: 25.01.2010 08:51:22

Hallo Hajo,

hier die Datei (in der Entstehung):

https://www.herber.de/bbs/user/67455.xls

Gruß
Dirk


  

Betrifft: AW: Start- , Lauf- und Stopzeit von: Hajo_Zi
Geschrieben am: 25.01.2010 08:55:11

Hallo Dirk,

ich habe das Teil Sekunden und kurz übe eine Minute aufen lassen. Ich konnnte den Fehler nicht feststellen. Wie lange muss ich es laufen lassen um den Fehler zu sehen.

Gruß Hajo


  

Betrifft: AW: Start- , Lauf- und Stopzeit von: Dirk R.
Geschrieben am: 25.01.2010 09:02:39

Hallo Hajo,

ich habe immer wieder in kurzen Abständen gestopt. Selten, aber es kommt vor, ergibt die Addition von Start- und Laufzeit nicht die ermittelte Stopzeit.

Ich habe schon versucht, dass die Stopzeit = Start- + Laufzeit ist und eben nicht die Now() Zeit der Funktion, aber ich bekomme es nicht hin.

Die stetigen rechnerisch genauen Zeiten sollen später in die Tabelle eingetragen werden.
Deshalb muss später jeder Eintrag rechnerisch stimmen.

Gruß
Dirk R.


  

Betrifft: AW: Start- , Lauf- und Stopzeit von: Hajo_Zi
Geschrieben am: 25.01.2010 09:11:19

Hallo Dirk,

dann mache es so.

Private Sub ToggleButton1_Click()
    Dim Start As Double, Ende As Double, Zeit As Double
    If ToggleButton1 Then
        tbxStop.Value = ""
        ToggleButton1.Caption = "Stop"
        Start = Round(Now(), 6)
        tbxStart.Value = Format(Start, "hh:mm:ss")
        Do
            Zeit = Round(Now() - Start, 6)
            tbxZeit.Value = Format(Zeit, "hh:mm:ss") 'Format(Now() - Start, "hh:mm:ss")
            DoEvents
            If Not ToggleButton1 Then Exit Do
            If Not frmZeitmessung.Visible Then Exit Do
        Loop
    Else
        tbxStop = Format(Now(), "hh:mm:ss")
        tbxZeit = Format(CDate(tbxStop) - CDate(tbxStart), "hh.mm:ss")
'        Ende = Round(Now() - Start, 6)
'        tbxStop.Value = Format(Ende, "hh:mm:ss")
        ToggleButton1.Caption = "Start"
    End If
End Sub
Gruß Hajo


  

Betrifft: AW: Start- , Lauf- und Stopzeit von: Dirk R.
Geschrieben am: 25.01.2010 09:39:10

Hallo Hajo,

super vielen Dank.
Nun funzt es prima!!!!!!!

Gruß Dirk R.


Beiträge aus den Excel-Beispielen zum Thema "Start- , Lauf- und Stopzeit"