Countdown Timer
#1
Hallo!

Ich habe einen kleinen Countdown-Timer erstellt. Dazu kann ich in B1 eine Zeit (m:ss) eintragen und durch den Start Button soll die Zeit in Sekundenschritten aud 0 herunterlaufen.

Es wird mir jedoch der Laufzeitfehler 424 (Objekt erforderlich) angezeigt!

Warum??? Kann mir da Jemand helfen?

Hier der Code:

Sub starttimer()
Application.OnTime Now + TimeValue("00:00:01"), "nexttick"
End Sub

Sub nexttick()
sheet1.Range("B1").Value = sheet1.Range("b1").Value - TimeValue("00:00:01")   -> hier wird der Fehler angezeigt!!
starttimer
End Sub

Sub stoptimer()
Application.OnTime Now + TimeValue("00:00:01"), "nexttick", , False
End Sub


Danke
Top
#2
Hallo

versuch es mal so
Code:
    Sheets(1).Range("B1").Value = Sheets(1).Range("B1").Value - TimeValue("00:00:01")


LG UweD
Top
#3
Hallo Uwe,

Danke für Deine Antwort.

Hast Du mal mein Modul-Code ausprobiert? 

Bei Sub stoptimer wird der Laufzeitfehler 1004 " Die Methode 'OnTime' für das Objekt 'Application' ist fehlgeschlagen angezeigt.

Mit Deinem Hinweis (Sheets..) läuft der Timer los..Ich wollte ihn aber mit dem Stop-Button noch anhalten.
Top
#4
Hi

Code:
Option Explicit
Dim NextInst As Date
Const TimeDiff = "00:00:01"


Sub starttimer()
    nexttick
End Sub


Sub nexttick()
    On Error GoTo Fehler
    Sheets(1).Range("B1").Value = Sheets(1).Range("B1").Value - TimeValue(TimeDiff)
    NextInst = Now + TimeValue(TimeDiff)
    Application.OnTime NextInst, "nexttick"
Fehler:
    If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
    If Err.Number <> 0 Then Resume Next
End Sub




Sub stoptimer()
    On Error Resume Next
    Application.OnTime NextInst, "nexttick", , False
End Sub


Bei deinem Konstrukt ist bei stoptimer die Zeit bereits abgelaufen und es kommt zum Fehler



LG UweD
Top
#5
Hallo UweD,

Vielen Dank für den Code.

Ich habe ihn so übernommen, jedoch wird bei mir eine nervige Fehlermeldung angezeigt.  "Fehler:9 Index außerhalb des gültigen Bereichs".

Woran liegt das?
Top
#6
Hallo,

in welcher Codezeile kommt der Fehler?
Gruß Stefan
Win 10 / Office 2016
Top
#7
Es wird eine Messagebox mit o.g. Inhalt im Tabellenblatt angezeigt. Und wenn man OK drückt,  wird eine Sekunde vom Timer heruntergezählt.
Top
#8
Hallo,

kommentiere mal die On Error Goto-Codezeile aus.
Gruß Stefan
Win 10 / Office 2016
Top
#9
Danke Stefan!  

Es klappt jetzt.

Noch eine Frage: Wenn ich jetzt zufällig noch einmal den Start-Button betätige, werden 2 Sekunden gleichzeitig abgezogen. Bei 3x Klick..3 Sekunden usw. 

Kann ich das unterbinden?? Es soll ja immer nur eine Sekunde abgezogen werden.

Und welchen Code müsste ich für einen Reset-Button eingeben, damit wieder die Anfangszeit (welche in B1 eingetragen wurde) eingestellt wird?
Top
#10
Hallo,

(26.06.2020, 10:01)Redgeier schrieb: Es klappt jetzt.

das dürfte nicht sein! Und warum willst Du mehrmals auf den Button klicken?
Gruß Stefan
Win 10 / Office 2016
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste