+ Reply to Thread
Results 1 to 7 of 7

Time with decimal places?

  1. #1
    Registered User
    Join Date
    01-15-2004
    Location
    Washington, West Sussex (UK)
    Posts
    11

    Time with decimal places?

    Hi everyone,

    I've written a little macro which is a countdown timer. I'm trying to get it to countdown on screen showing decimal places in the seconds, to do this I've set the format as "hh:mm:ss.00". I know this works for general times as I've tried putting "=now()" and holding down F9. However, when I run my macro it only counts down in whole seconds and the decimal places just stay as "00".

    This is my code:

    Sub Countdown()

    Dim StartTime As Double, CDL As Double, EndTime As Double, NowTime As Double
    Dim YesNo As Integer

    CDL = Range("Timer")
    StartTime = Now
    EndTime = StartTime + CDL

    Do
    NowTime = EndTime - Now
    If NowTime < 0 Then NowTime = 0
    Range("Timer") = NowTime
    Loop Until NowTime = 0

    YesNo = MsgBox("Reset timer?", vbYesNo)

    If YesNo = 6 Then Range("Timer") = CDL

    End Sub

    (apart from the fact that it has the proper indenting which this forum seems to remove )

    I've tried dim-ing them as dates but that doesn't make any difference. Any suggestions anyone?

    Many thanks,

    Rob

  2. #2
    Toppers
    Guest

    RE: Time with decimal places?

    Try:

    Range("Timer") = Format(NowTime, "hh:mm:ss:00")

    HTH

    "Rob_T" wrote:

    >
    > Hi everyone,
    >
    > I've written a little macro which is a countdown timer. I'm trying to
    > get it to countdown on screen showing decimal places in the seconds, to
    > do this I've set the format as "hh:mm:ss.00". I know this works for
    > general times as I've tried putting "=now()" and holding down F9.
    > However, when I run my macro it only counts down in whole seconds and
    > the decimal places just stay as "00".
    >
    > This is my code:
    >
    > Sub Countdown()
    >
    > Dim StartTime As Double, CDL As Double, EndTime As Double, NowTime
    > As Double
    > Dim YesNo As Integer
    >
    > CDL = Range("Timer")
    > StartTime = Now
    > EndTime = StartTime + CDL
    >
    > Do
    > NowTime = EndTime - Now
    > If NowTime < 0 Then NowTime = 0
    > Range("Timer") = NowTime
    > Loop Until NowTime = 0
    >
    > YesNo = MsgBox("Reset timer?", vbYesNo)
    >
    > If YesNo = 6 Then Range("Timer") = CDL
    >
    > End Sub
    >
    > (apart from the fact that it has the proper indenting which this forum
    > seems to remove )
    >
    > I've tried dim-ing them as dates but that doesn't make any difference.
    > Any suggestions anyone?
    >
    > Many thanks,
    >
    > Rob
    >
    >
    > --
    > Rob_T
    > ------------------------------------------------------------------------
    > Rob_T's Profile: http://www.excelforum.com/member.php...fo&userid=4952
    > View this thread: http://www.excelforum.com/showthread...hreadid=556388
    >
    >


  3. #3
    Registered User
    Join Date
    01-15-2004
    Location
    Washington, West Sussex (UK)
    Posts
    11
    No, that doesn't make any difference. But thanks for the suggestion.

    Anyone else?

    Rob

  4. #4
    Toppers
    Guest

    RE: Time with decimal places?

    Rob,
    Misread your post but I don't believe you can get milliseconds
    without some VBA programming. I believe I MIGHT be able to dig something out
    on my home m/c but don't hold your breath!

    "Rob_T" wrote:

    >
    > Hi everyone,
    >
    > I've written a little macro which is a countdown timer. I'm trying to
    > get it to countdown on screen showing decimal places in the seconds, to
    > do this I've set the format as "hh:mm:ss.00". I know this works for
    > general times as I've tried putting "=now()" and holding down F9.
    > However, when I run my macro it only counts down in whole seconds and
    > the decimal places just stay as "00".
    >
    > This is my code:
    >
    > Sub Countdown()
    >
    > Dim StartTime As Double, CDL As Double, EndTime As Double, NowTime
    > As Double
    > Dim YesNo As Integer
    >
    > CDL = Range("Timer")
    > StartTime = Now
    > EndTime = StartTime + CDL
    >
    > Do
    > NowTime = EndTime - Now
    > If NowTime < 0 Then NowTime = 0
    > Range("Timer") = NowTime
    > Loop Until NowTime = 0
    >
    > YesNo = MsgBox("Reset timer?", vbYesNo)
    >
    > If YesNo = 6 Then Range("Timer") = CDL
    >
    > End Sub
    >
    > (apart from the fact that it has the proper indenting which this forum
    > seems to remove )
    >
    > I've tried dim-ing them as dates but that doesn't make any difference.
    > Any suggestions anyone?
    >
    > Many thanks,
    >
    > Rob
    >
    >
    > --
    > Rob_T
    > ------------------------------------------------------------------------
    > Rob_T's Profile: http://www.excelforum.com/member.php...fo&userid=4952
    > View this thread: http://www.excelforum.com/showthread...hreadid=556388
    >
    >


  5. #5
    Registered User
    Join Date
    01-15-2004
    Location
    Washington, West Sussex (UK)
    Posts
    11
    Well, it seems to work just on the spreadsheet. As a test, on the same spreadsheet I put another cell below the "Timer" range with exactly the same format. In there I've put "=now()" and that counts in milliseconds while the cell above (the countdown) counts only in seconds

    It's not vital really, I just think it looks a bit cooler if you can see the milliseconds rattling off

    Cheers,

    Rob

  6. #6
    Toppers
    Guest

    RE: Time with decimal places?

    Rob,
    Take a look here:

    http://www.tushar-mehta.com/excel/software/vba_timer/

    HTH

    "Rob_T" wrote:

    >
    > Hi everyone,
    >
    > I've written a little macro which is a countdown timer. I'm trying to
    > get it to countdown on screen showing decimal places in the seconds, to
    > do this I've set the format as "hh:mm:ss.00". I know this works for
    > general times as I've tried putting "=now()" and holding down F9.
    > However, when I run my macro it only counts down in whole seconds and
    > the decimal places just stay as "00".
    >
    > This is my code:
    >
    > Sub Countdown()
    >
    > Dim StartTime As Double, CDL As Double, EndTime As Double, NowTime
    > As Double
    > Dim YesNo As Integer
    >
    > CDL = Range("Timer")
    > StartTime = Now
    > EndTime = StartTime + CDL
    >
    > Do
    > NowTime = EndTime - Now
    > If NowTime < 0 Then NowTime = 0
    > Range("Timer") = NowTime
    > Loop Until NowTime = 0
    >
    > YesNo = MsgBox("Reset timer?", vbYesNo)
    >
    > If YesNo = 6 Then Range("Timer") = CDL
    >
    > End Sub
    >
    > (apart from the fact that it has the proper indenting which this forum
    > seems to remove )
    >
    > I've tried dim-ing them as dates but that doesn't make any difference.
    > Any suggestions anyone?
    >
    > Many thanks,
    >
    > Rob
    >
    >
    > --
    > Rob_T
    > ------------------------------------------------------------------------
    > Rob_T's Profile: http://www.excelforum.com/member.php...fo&userid=4952
    > View this thread: http://www.excelforum.com/showthread...hreadid=556388
    >
    >


  7. #7
    Registered User
    Join Date
    01-15-2004
    Location
    Washington, West Sussex (UK)
    Posts
    11
    I'll see if I can give that a try. I'm not sure the IT people here will like me installing unofficial stuff on my PC though. I'll see if I can sweet-talk them

    Cheers,

    Rob

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1