Hallo Spezialisten. Jetzt muss ich doch mal nachfragen weil ich es ums verrecken nicht hinbekomme.
Ich habe mir auf paulblaes.de/tool.html
das Tool für die Zeiterfassung heruntergeladen. Jetzt möchte ich jedoch dass die Zeiten nicht nur auf Sekunden dargestellt bzw. berechnet werden, sondern auch mit Millisekunden.
Ich habe jetzt 3 Tage damit zu gebracht irgend einen Weg zu finden mit den Millisekunden zu rechnen, und zwar so dass vba auch weis dass es sich hier um eine Zeit handelt. Das scheint mir nahezu unmöglich zu sein.
Hier mal der Ausschnitt der mir als ausschlaggebend erscheint.
Ich habe schon einen Timer eingebaut der mir vergangene Zeit mit Millisekunden zurück gibt. Nur leider kann keine weitere Berechnung damit stattfinden. z.B.: Runde 1 addiert Runde 2 geteilt durch 2 um den Durchschnitt zu berechnen. Für den Durchschnitt benötige ich eben auch die Millisekunden.
Ich hoffe Ihr könnt mir etwas helfen.
Gruß Kay
Ich habe mir auf paulblaes.de/tool.html
das Tool für die Zeiterfassung heruntergeladen. Jetzt möchte ich jedoch dass die Zeiten nicht nur auf Sekunden dargestellt bzw. berechnet werden, sondern auch mit Millisekunden.
Ich habe jetzt 3 Tage damit zu gebracht irgend einen Weg zu finden mit den Millisekunden zu rechnen, und zwar so dass vba auch weis dass es sich hier um eine Zeit handelt. Das scheint mir nahezu unmöglich zu sein.
Hier mal der Ausschnitt der mir als ausschlaggebend erscheint.
Visual Basic-Quellcode
- '##############################################################
- '# Wechsel, Werte eintragen #
- '##############################################################
- Public Sub wechsel(wechsel_team As Integer, wechsel_derz_runde As Integer)
- '# Variablen
- Dim jetzt As Date
- Dim differenz_sekunden As Long
- Dim stunden As Long
- Dim minuten As Long
- Dim sekunden As Long
- Dim zeile, spalte As Integer
- Dim zaehler, x, cT As Integer
- '# Timer in Millisekunden stoppen und Rundenzeit ermitteln
- EndTimer = Timer
- rundenzeit = Format(EndTimer - StartTimer, "00:00:00.000")
- '# Uhrzeit ermitteln
- jetzt = Now()
- '# Zeit des letzten Fahrers ermitteln
- differenz_sekunden = DateDiff("s", ergebnis_startuhrzeit(wechsel_team, derz_runde(wechsel_team)), jetzt)
- stunden = Int(differenz_sekunden / 3600) '# HIER BRAUCHT ES MILLISEKUNDEN
- minuten = Int((differenz_sekunden - stunden * 3600) / 60)
- sekunden = differenz_sekunden - stunden * 3600 - minuten * 60
- ergebnis_rundenzeit(wechsel_team, derz_runde(wechsel_team)) = Format(Str(stunden) + ":" + Str(minuten) + ":" + Str(sekunden), "long time")
- '# kurzlösung funktioniert für die erste befüllung. Aber weitere Berechnung lassen sich nicht ausführen. Z.B.: (Rundenzeit1 + Rundenzeit2) / 2 um Durchschnitt zu berechnen
- ' ergebnis_rundenzeit(wechsel_team, derz_runde(wechsel_team)) = rundenzeit
- '# Variablenwerte neu setzen
- derz_runde(wechsel_team) = derz_runde(wechsel_team) + 1
- ergebnis_startuhrzeit(wechsel_team, derz_runde(wechsel_team)) = jetzt
- '# Uhrzeit ermitteln
- Sheets(name_rennen).Select
- Sheets(name_rennen).Range("d88").Activate
- spalte = wechsel_team * 11 - 11
- zeile = wechsel_derz_runde * 3 - 5
- ActiveCell.Offset(zeile, spalte).Activate
- ActiveCell.Value = ergebnis_rundenzeit(wechsel_team, derz_runde(wechsel_team) - 1)
- ActiveCell.Offset(4, 0).Activate
- ActiveCell.Value = Format(ergebnis_startuhrzeit(wechsel_team, derz_runde(wechsel_team)), "dd.mm.yyyy hh:mm:ss")
- '# Cursor nach oben setzen
- Sheets(name_rennen).Range("c3").Activate
Ich habe schon einen Timer eingebaut der mir vergangene Zeit mit Millisekunden zurück gibt. Nur leider kann keine weitere Berechnung damit stattfinden. z.B.: Runde 1 addiert Runde 2 geteilt durch 2 um den Durchschnitt zu berechnen. Für den Durchschnitt benötige ich eben auch die Millisekunden.
Ich hoffe Ihr könnt mir etwas helfen.
Gruß Kay