Avatar billede dantyr Juniormester
04. november 2016 - 08:23

On/off knap macro

Jeg har en timer der starter med en knap og pauser med en anden. Jeg kan ikke få den til at blive til en on/off knap som jeg har på ark "timer". forstår ikke helt hvad det er der driller men hvergang jeg tror den er der stopper uret .

Her er on/off marco
Sub startStopTimer()
    If Range("timer.button.label") = "Start" Then
Sheet1.Shapes("Rounded Rectangle 2").Fill.ForeColor.RGB = RGB(255, 0, 0)
 
Range("time.stamp.start").Offset(Range("count.of.timestamps") + 1).Value = Now
        Range("timer.button.label") = "Stop"
    Else
        Range("time.stamp.start").Offset(Range("count.of.timestamps"), 1).Value = Now - Range("time.stamp.start").Offset(Range("count.of.timestamps"))
Sheet1.Shapes("Rounded Rectangle 2").Fill.ForeColor.RGB = RGB(12, 249, 68)
        Range("timer.button.label") = "Start"

    End If
End Sub

Styringen vil jeg så gerne ha ind på denne her så den får en on/off knap og ikke 2 knapper.

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")
Ark1.Shapes("Tekstfelt 1").Fill.ForeColor.RGB = RGB(12, 249, 68)
    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
Ark1.Shapes("Tekstfelt 1").Fill.ForeColor.RGB = RGB(255, 0, 0)
End Sub
Sub Pause2()
    On Error Resume Next
    Application.OnTime EarliestTime:=CountDown, procedure:="Reset", Schedule:=False
    CountTiming = Nedtael.Value
    StartTime = 0
Ark1.Shapes("Tekstfelt 1").Fill.ForeColor.RGB = RGB(255, 255, 0)
End Sub

https://www.dropbox.com/s/2l7txcsbj7eco1c/25%20on%20a%20week.xlsm?dl=0
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester