Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antwortento top
#2
Hallo

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


LG UweD
Antwortento 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.
Antwortento 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
Antwortento 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?
Antwortento top
#6
Hallo,

in welcher Codezeile kommt der Fehler?
Gruß Stefan
Win 10 / Office 2007
Antwortento 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.
Antwortento top
#8
Hallo,

kommentiere mal die On Error Goto-Codezeile aus.
Gruß Stefan
Win 10 / Office 2007
Antwortento 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?
Antwortento top
#10
Hallo,

(26.06.2020, 09: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 2007
Antwortento top


Gehe zu:


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