AW: Uhrzeit bzw. Timer - Flackern
14.11.2020 14:05:50
Markus
Dank Dir! :-)
Ich würde noch eine andere Variante ausprobieren wollen.
Ich möchte, dass die Stoppuhr beginnte, wenn der Eintrag bei F8 abgeschlossen wurde. Enden bzw. die Zeit soll gestoppt werden, wenn bei F17 die Eingabe erfolgt ist. Demnach möchte ich nicht unbedingt die 2 Shapes sehen bzw. nutzen.
In der Userform möchte ich mir dann die benötigte Zeit anzeigen lassen.
Dafür müsste ich doch den Worksheet_Change-Code so lassen und nur im Modul etwas ändern..oder?
Ich habe versucht etwas zu löschen, da ist Excel aber abgestürzt.
Was müsste ich dafür löschen?
Wir hatten ja vorher 60 Sekunden eingetragen, wo dann die Userform automatisch öffnet.
Hier der Code:
Option Explicit
Private Declare Function SetTimer Lib "user32.dll" ( _
ByVal hwnd As Long, _
ByVal nIDEvent As Long, _
ByVal uElapse As Long, _
ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32.dll" ( _
ByVal hwnd As Long, _
ByVal nIDEvent As Long) As Long
Private llngTime As Long
Public Sub StartTimer()
Cells(1, 1).Value = 0
llngTime = 1
Tabelle1.Shapes(1).Visible = msoFalse
Tabelle1.Shapes(2).Visible = msoTrue
Call SetTimer(Application.hwnd, 0&, 1000&, AddressOf TimerProc)
End Sub
Public Sub StopTimer()
Call KillTimer(Application.hwnd, 0&)
Tabelle1.Shapes(1).Visible = msoTrue
Tabelle1.Shapes(2).Visible = msoFalse
Sheets("Tabelle1").Range("F8:F17") = "" 'das habe ich noch hinzugefügt
End Sub
Private Function TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, _
ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
On Error Resume Next
Application.EnableEvents = False
Cells(1, 1).Value = llngTime
Application.EnableEvents = True
If llngTime = 60 Then
Call StopTimer
Call UserForm1.Show
Else
llngTime = llngTime + 1
End If
End Function
Danke