Anzeige
Archiv - Navigation
1644to1648
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeit in hundertstel anpassen aus einer Vorlage

Zeit in hundertstel anpassen aus einer Vorlage
09.09.2018 18:09:26
Steffen
Hallo liebe Experten-Team,
Excel beherrsche ich ziemlich gut, bis auf VBA. Da fehlt mir das absolutes Know-How. Für unseren Sport benötigen wir eine Stoppuhr, welches ich auch fündig wurde. Diese Vorlage ist von http://Hajo-Excel.de/.
Jedoch zählt diese Vorlage nur die Sekunden statt die Hundertstelsekunden (bzw. millisekunden).
Ich habe seit zwei Tagen im Internet durchgeforschtet, aber wenn das Know-How fehlt, suche ich vielleicht nach falschen Begriffen, bzw. bin ich nicht fündig geworden. Auch nach alternativen Vorlagen bin ich nicht wirklich fündig geworden, da die bisherigen gefundenen nicht auf 64-Bit kompaktibel ist...
Ich besitze Excel 2016 auf 64-Bit.
Wer von euch, so hoffe und wünsche ich mir, könnte den Code aus dieser Vorlage entsprechend anpassen, so das der Zähler auch hundertstelsekunden abzählt, statt nur in Sekunden.
Ich bedanke mich im Voraus für die Unterstützung.
Am Rand ist noch zu erwähnen: Diese vorlage kann entsprechend angepasst werden, jedoch sollen die Kommentare, etc. beibehalten werden. Vielen Dank!
https://www.herber.de/bbs/user/123847.xls
Oder ihr schreibt, wie ich es entsprechend anpassen kann!
Vielen herzlichen Dank!
Beste Grüße Steffen

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Off topic
09.09.2018 18:35:45
RPP63
Moin!
Für so etwas nehme ich eher eine Stoppuhr aus dem real life oder auch mein Smartphone.
Wenn Du unbedingt den Laptop zum Sport schleppen willst (quasi als Schlepp-Top), dann suche mal nach Microtimer VBA.
Da dieser auf einer API beruht, wirst Du den Aufruf auf 64 Bit anpassen müssen.
z.B. so:
#If VBA7 Then
Private Declare PtrSafe Function getFrequency Lib "kernel32" Alias _
"QueryPerformanceFrequency" (cyFrequency As Currency) As Long
Private Declare PtrSafe Function getTickCount Lib "kernel32" Alias _
"QueryPerformanceCounter" (cyTickCount As Currency) As Long
#Else
Private Declare Function getFrequency Lib "kernel32" Alias _
"QueryPerformanceFrequency" (cyFrequency As Currency) As Long
Private Declare Function getTickCount Lib "kernel32" Alias _
"QueryPerformanceCounter" (cyTickCount As Currency) As Long
#End If
Public Function Microtimer() As Double
Dim cyTicks1 As Currency
Static cyFrequency As Currency
Microtimer = 0
If cyFrequency = 0 Then getFrequency cyFrequency
getTickCount cyTicks1
If cyFrequency Then Microtimer = cyTicks1 / cyFrequency
End Function
Gruß Ralf
Anzeige
AW: Off topic
09.09.2018 18:57:41
Steffen
Hallo Ralf,
vielen dank für die schnelle Rückmeldung! Ja, dass ist mir durchaus bewusst, dass da noch andere Alternativen wie z.b. das Smartphone gibt! Wir haben unsere eigenen Gründe, warum wir eben wie dieser suchen. Daher hierzu danke für die anderen Tipps.
Zum anderen, das geliefertes Code: Wo füge ich dieser ein?
zweite Frage: Wie finde ich es heraus, wie ich die entsprechend anpassen müsste mit der API?
dritte Frage: Wonach muss ich suchen, bzw. was brauche ich zu dem Microtimer VBA?
Sorry für die vielen Fragen!
Vielen Dank!
AW: Zeit in hundertstel anpassen aus einer Vorlage
09.09.2018 18:39:54
Sepp
Hallo Steffen,
https://www.herber.de/bbs/user/123848.xls
obwohl hundertstel bei einer manuell betätigten Stoppuhr eher eine Spielerei ist.
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Zeit in hundertstel anpassen aus einer Vorlage
09.09.2018 19:26:21
Steffen
Hallo Sepp, vielen Dank! Auch sehr interessant und es funktioniert prima!
Ich glaube, damit könnte ich auch was anfangen!
Jedoch habe ich da bissl bedenken, falls mal irgendwie die Maus wegrutscht, ist es nicht tragbar! Daher meine Frage ob es programmierbar ist, das tätigen einer Leertaste die Zwischenzeiten zu aktivieren? Bei deinem funktioniert es leider nicht! Vielleicht ist es ja in wenigen Schritten möglich dies anzupassen?
Ansonsten, werde ich mal drüber schlafen! ;-) Trotzdem vielen Dank!
AW: Zeit in hundertstel anpassen aus einer Vorlage
09.09.2018 20:04:18
Daniel
Hi
füge einfach eine Textbox aus den ActiveX-Steuerelementen hinzu (Entwicklertools - Einfügen)
verwende dann diesen Code, um die Stoppuhr über die Tasten
ENTER - Start/Stop
LEER - Zwischenzeit
R - Reset zu steueren.
da ich noch eine kleinigkeit angepasst habe um das ganze sinnvoller steuern zu können, hier nochmal der komplette Code:
Option Explicit
Private dblT As Double
Private bUhrLäuft As Boolean
Private lngR As Long
Private Sub startWatch()
resetWatch
bUhrLäuft = True
dblT = Timer
Me.Shapes("shpStop").Visible = True
Me.Shapes("shpLap").Visible = True
Me.Shapes("shpStart").Visible = False
TextBox1.Activate
On Error Resume Next
Do
DoEvents
Range("D6") = (Timer - dblT) / 86400
DoEvents
Loop While bUhrLäuft
End Sub
Private Sub stopWatch()
bUhrLäuft = False
Rows(10).Insert
Range("B10:D10").Font.ColorIndex = 23
Range("B11:D11").Font.ColorIndex = 15
Range("B10") = "Endtime:"
Range("D10") = Range("D6")
Me.Shapes("shpReset").Visible = True
Me.Shapes("shpStop").Visible = False
Me.Shapes("shpLap").Visible = False
End Sub
Private Sub lap()
lngR = lngR + 1
Rows(10).Insert
Range("B10:D10").Font.ColorIndex = 23
Range("B11:D11").Font.ColorIndex = 15
Range("B10") = "Lap " & Format(lngR, "000") & ":"
Range("D10") = Range("D6")
End Sub
Private Sub resetWatch()
lngR = 0
Range("D6") = 0
With Range("B10:D" & Rows.Count)
.ClearContents
.Font.ColorIndex = 15
End With
Me.Shapes("shpStart").Visible = True
Me.Shapes("shpStop").Visible = False
Me.Shapes("shpLap").Visible = False
Me.Shapes("shpReset").Visible = False
End Sub
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If bUhrLäuft Then
Select Case KeyCode
Case 13: stopWatch
Case 32: lap
End Select
Else
Select Case KeyCode
Case 13: startWatch
Case Asc("R"): resetWatch
End Select
End If
KeyCode = 0
End Sub

die Tastatursteuerung läuft, sobald sich der Cursor in der Textbox befindet.
dies ist nach dem KLick auf den Startbutton auf jeden Fall gegeben.
Du solltest nach Start der Uhr dann aber auch nicht mehr mit der Maus irgendwohin clicken.
Gruß Daniel
Anzeige
Gibt es da auch etwas von Nepumuk?
09.09.2018 18:46:46
Nepumuk?
Nix Ratiopharm, sondern himself:
https://www.online-excel.de/excel/singsel_vba.php?f=96
AW: Gibt es da auch etwas von Nepumuk?
09.09.2018 19:00:24
Nepumuk?
Das hatte ich auch schon entdeckt. Aber erstens kommt eine Fehlermeldung, dass es nicht auf 64-Bit kompaktibel ist. Das ist genau das, was ich meinte!
Da ich von VBA aktuell so gut wie kein Wissen verfüge, ist es schwierig da irgendetwas zu verstehen, bzw. abzuändern!
Aber trotzdem Danke!
AW: Zeit in hundertstel anpassen aus einer Vorlage
09.09.2018 18:47:52
Daniel
Hi
die Funktion TIMER gibt dir die Uhrzeit in Sekunden (eine Sekunde = 1), dabei werden auch Bruchteile gezählt.
zum Umwandeln:
im Modul mdl_Stoppuhr: dim DaZeit as Double
in allen Modulen: ersetze NOW durch TIMER immer dort, wo es in einer Zeile mit DaZeit steht (bei DaEt bleibt NOW stehen)
im Tabellenblatt: formatiere die Spalte A im Zahlenformat "Standard"
zeitanzeige dann in Sekunden.
wenn du die normale Uhrzeitanzeige haben willst, dann müsstest du das: Timer - DaZeit durch (Timer - DaZeit)/24/60/60 ersetzen und in Spalte A das Zahlenformat hh:mm:ss,00 verwenden.
Gruß Daniel
Anzeige
AW: Zeit in hundertstel anpassen aus einer Vorlage
09.09.2018 19:17:47
Steffen
Hallo vielen dank für die Antwort!
irgendwie funktioniert es nicht!
Ich habe folgendes gemacht:
- Modul mdl_Stoppuhr:
"Public DaZeit as Date" in "Dim DaZeit as Double"
"Now - DaZeit" in "Timer - DaZeit"
Tabelle1:
"DaZeit = Now" in "DaZeit = Timer"
Eben bei dieser Tabelle kommt die Fehlermeldung: "Fehler beim Kompilieren: Variable nicht definiert"
Habe ich irgendetwas übersehen?
AW: Zeit in hundertstel anpassen aus einer Vorlage
09.09.2018 19:37:45
Daniel
Hi
im Code der Userform frm_Stoppuhr kommts auch noch mal vor.
wenn du diese Fehlermeldung bekommst, dann markiert dir Excel auch das Wort, das diesen Fehler verursacht (wird blau markiert). Das ist nicht zu übersehen.
Um welches Wort handelt es sich? Vermutlich hast du dort einen Tippfehler eingebaut und das "Timer" falsch geschrieben, so dass VBA es nicht als vorhandene Funktion erkennt sondern für eine Variable hält.
Gruß Daniel
Anzeige
AW: Zeit in hundertstel anpassen aus einer Vorlage
09.09.2018 20:11:13
Steffen
Hallo Daniel,
im Userforum hatte sich wohl noch ein Code versteckt! Danke für den Hinweis!
Die Fehlermeldung taucht in der Tabelle1 auf. Blau markiert ist "DaZeit" obwohl ich diese ja nicht angerührt hatte. Gelb Markiert ist dies: Private Sub Cmd_Start1_Click()
Auch im Modul mdl_Stoppuhr ist alles richtig geschrieben: "Dim DaZeit as Double".
Das Wort Timer ist auch alles richtig gesetzt!
AW: Zeit in hundertstel anpassen aus einer Vorlage
09.09.2018 20:23:16
Daniel
sorry muss sein Public DaZeit as double
ohne Public ist die Varable in den anderen Modulen nicht bekannt.
Gruß Daniel
AW: Zeit in hundertstel anpassen aus einer Vorlage
09.09.2018 21:06:27
Steffen
hm, es kommen zwar keine Fehlermeldungen, aber die Zeiten stimmen nicht! Bei mir kommt das raus:
00:00:00,00
22:07:30,00
18:11:15,00
12:45:00,00
21:33:45,00
17:37:30,00
06:11:15,00
18:45:00,00
16:41:15,00
Anzeige
AW: Zeit in hundertstel anpassen aus einer Vorlage
09.09.2018 21:35:38
Daniel
HI
lies dir meinen Beitrag nochmal genau durch und prüfe, ob du meine Anweisungen umgesetzt hast.
ich hatte da auch was zu Formatierung der Zellen in Spalte A geschrieben, das sollte dein Problem lösen.
Gruß Daniel
AW: Zeit in hundertstel anpassen aus einer Vorlage
10.09.2018 17:59:37
Steffen
Hallo Daniel,
vielen herzlichen Dank für die Unterstützung. Ich habe es nochmal neu begonnen, und jetzt läuft ohne Probleme. Vielen Dank!
Für die anderen kurze Zusammenfassung:
Abändern in Makro:
- Modul mdl_Stoppuhr:
Public DaZeit as Date in Public DaZeit as Double
Now - DaZeit in (Timer - DaZeit) / 24 / 60 / 60
Tabelle1:
DaZeit = Now in DaZeit = Timer
frm_Stoppuhr (rechte Maustaste und Code anzeigen)
.Cells(LoLetzte, 1) = Now - DaZeit in .Cells(LoLetzte, 1) = (Timer - DaZeit) / 24 / 60 / 60
Danach Spalte A formatieren in Benutzerdefiniert auf hh:mm:ss,00 setzen!
Und zu guter letzt: Danke an den Ersteller dieser Stoppuhr, und danke an Daniel für die entsprechende anpassung! ;-)
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige