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 -- 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 |
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 |
Time with decimal places?
No, that doesn't make any difference. But thanks for the suggestion. Anyone else? 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 |
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 |
Time with decimal places?
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 :confused: It's not vital really, I just think it looks a bit cooler if you can see the milliseconds rattling off :rolleyes: Cheers, 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 |
Time with decimal places?
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 :confused: It's not vital really, I just think it looks a bit cooler if you can see the milliseconds rattling off :rolleyes: Cheers, 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 |
Time with decimal places?
Rob,
Take a look he 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 |
Time with decimal places?
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 -- 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 |
All times are GMT +1. The time now is 12:13 PM. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com