30. oktober 2016 - 16:05Der er
17 kommentarer og 1 løsning
Countdown skal start igen
Hejsa. Jeg har en takttid jeg skriver i celle B2. Et ud begynder at tælle ned(værdi i celle B2) når jeg trykker på en Start knap. Når den når til nul vil jeg gerne ha den til at starte igen uden jeg gør noget...
Sub starttimer() Application.OnTime Now + TimeValue("00:00:01"), "nexttick"
End Sub Sub nexttick() If Worksheets(1).Range("B1") = 0 Then Exit Sub Worksheets(1).Range("B1").Value = Range("b1").Value - TimeValue("00:00:01")
starttimer End Sub Sub stoptimer() On Error Resume Next Application.OnTime Now + TimeValue("00:00:01"), "nexttick", , False End Sub
Sub resettimer() Worksheets(1).Range("B2").Value = TimeValue("00:15:00") End Sub_
Mon ikke: If Worksheets(1).Range("B1") = 0 Then Exit Sub skal ændres til: If Worksheets(1).Range("B1") = 0 Then resttimer ? Men de vil give en evig løkke hvis du ikke har en stopper på (Knap elle tæller)
Sub StartTimer() Application.OnTime Now + TimeValue("00:00:01"), "NextTick" End Sub Private Sub NextTick() If Worksheets(1).Range("B1") = 0 Then ResetTimer Worksheets(1).Range("B1").Value = Range("b1").Value - TimeValue("00:00:01")
StartTimer End Sub Sub StopTimer() On Error Resume Next Application.OnTime Now + TimeValue("00:00:01"), "NextTick", , False End Sub
Private Sub ResetTimer() Worksheets(1).Range("B1").Value = TimeValue("00:15:00") End Sub
FEDT. Tak Jan den virker:). Mange tak for hjælpen.... Men har liget set der er et andet problem med den timer jeg bruger. Hvis jeg ikke lader den stå og tælle ned uden at rører noget vil den på 1 min ca kun være ned med 30 sek. Det vil sige at tælleren kun virker når jeg arbejder på min pc(mac). Jeg har fundet en anden tæller men den mangler en stopknap samt start igen. Kan du se hvad der er forkert i den første Endnu en gang tak .
Dim CountDown As Date, StartTime As Date, CountTiming As Date Sub Timer() If StartTime = 0 Then StartTime = Now If CountTiming = 0 Then CountTiming = [A1].Value CountDown = Now + TimeValue("00:00:01") Application.OnTime CountDown, "Reset" End Sub Sub Reset() On Error Resume Next [A1] = CountTiming - (Now - StartTime) ' This counts down from the start time If CountTiming - (Now - StartTime) <= 0 Then [A1] = CountTiming ' This is resetting the clock (May not be necessary) MsgBox "Countdown complete." CountTiming = 0 StartTime = 0 Exit Sub End If Call Timer End Sub Sub DisableTimer() On Error Resume Next Application.OnTime EarliestTime:=CountDown, Procedure:="Reset", Schedule:=False [A1] = CountTiming CountTiming = 0 StartTime = 0 End Sub
Dim CountDown As Date, StartTime As Date, CountTiming As Date Dim Ark As Worksheet Dim StartTid As Range, Nedtæl As Range Sub SetVar() Set Ark = Sheets(1) Set StartTid = Ark.Range("B2") Set Nedtæl = Ark.Range("B1") End Sub Sub Timer() If StartTime = 0 Then StartTime = Now If CountTiming = 0 Then CountTiming = StartTid.Value CountDown = Now + TimeValue("00:00:01") Application.OnTime CountDown, "Reset" End Sub Private Sub Reset() On Error Resume Next Nedtæl.Value = CountTiming - (Now - StartTime) ' This counts down from the start time If CountTiming - (Now - StartTime) <= 0 Then StartTid.Value = CountTiming ' This is resetting the clock (May not be necessary) CountTiming = 0 StartTime = 0 Exit Sub End If Call Timer End Sub Sub DisableTimer() On Error Resume Next Application.OnTime EarliestTime:=CountDown, procedure:="Reset", Schedule:=False Nedtæl.Value = 0 CountTiming = 0 StartTime = 0 End Sub Sub Pause() On Error Resume Next Application.OnTime EarliestTime:=CountDown, procedure:="Reset", Schedule:=False CountTiming = Nedtæl.Value StartTime = 0
Nu har jeg kæmpet med det og kan ikke helt forstå hvordan det hænger sammen. Hvergang jeg lukker den ned og starter excel op igen skal jeg først trykke på "set var" ellers melder den fejl. Tallet i felt B2 skulle kun kunne ændres hvis jeg skrev et nyt tal men den kan også ændre sig når B1 når 00:00:00.... Kunne ikke fatter hvor jeg gjorde af Call Timer http://s000.tinyupload.com/index.php?file_id=04553332009863528615
'---- Skal ligge i ThisWorkbook ---' Private Sub Workbook_Open() SetVar End Sub
'------ Skal ligge i et modul ----' Option Explicit
Dim CountDown As Date, StartTime As Date, CountTiming As Date Dim Ark As Worksheet Dim StartTid As Range, Nedtael As Range Sub SetVar() '-----Sætter variable for Arket, B1 og B---' Set Ark = Sheets(1) Set StartTid = Ark.Range("B2") Set Nedtael = Ark.Range("B1") End Sub Sub Timer() If StartTime = 0 Then StartTime = Now If CountTiming = 0 Then CountTiming = StartTid.Value CountDown = Now + TimeValue("00:00:01") Application.OnTime CountDown, "Reset" End Sub Private Sub Reset() On Error Resume Next Nedtael.Value = CountTiming - (Now - StartTime) ' Tæller ned fra "StartTime" If CountTiming - (Now - StartTime) <= 0 Then ' Tjekker om tiden er nået til nul CountTiming = 0 StartTime = 0 Call Timer '----- Kører sub´en Timer -----' Exit Sub End If Call Timer '----- Kører sub´en Timer -----' End Sub Sub DisableTimer() On Error Resume Next Application.OnTime EarliestTime:=CountDown, procedure:="Reset", Schedule:=False Nedtael.Value = 0 CountTiming = 0 StartTime = 0 End Sub Sub Pause() On Error Resume Next Application.OnTime EarliestTime:=CountDown, procedure:="Reset", Schedule:=False CountTiming = Nedtael.Value StartTime = 0
End Sub
Start knap skal køre "Timer" Pause knap skal køre "Pause" og Stop knap skal køre "DisableTimer"
Ja men jeg tror jeg skal prøve at sætte mig ind i hvordan det er bygget op for at lærer det fra bunden. Det er alt for meget famlem i blinde når man ikke forstår det grundlæggende... :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.