ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Time is driving me crazy (https://www.excelbanter.com/excel-programming/423017-time-driving-me-crazy.html)

Matt S

Time is driving me crazy
 
Hello everyone!

I have a file that is generated on a second-by-second basis. Unfortunately,
it does not give me a time column, rather a 0,1,2,3,... column. It does give
me the start time, however, in this form:

Fri Jan 23 14:13:19 2009 (GMT-05:00).

My macro picks out the 14:13:19 using the Mid function, but after pasting
this to a column, I want to add one second to it and then extend it down for
the entire data set. I am having trouble adding one second to it. Here's my
macro thus far:


Sub TimeDilemma()

Range("D:D,F:F,H:H,J:J,L:L,N:N,P:P,R:R,T:T").Delet e Shift:=xlToLeft
'Cleans up my data

LastRow = Cells(Rows.Count, "A").End(xlUp).Row
TimeLength = Len(Range("A6").Value)
StartTime = Mid(Range("A6").Value, TimeLength - 24, 8)

Range("A8").Value = StartTime

'make Range("A9") = StartTime + 1 sec then autofill down?

Range("A8:A9").AutoFill Destination:=Range("A8:A" & LastRow)

End Sub


Any help would be greatly appreciated!

THANKS!

egun

Time is driving me crazy
 
Excel should be treating the time you past in as a date. If you add one to a
date, you are adding a day:

Jan-01-2009 + 1 = Jan-02-2009

There are 24*60*60 seconds in a day. So, to add just one second, you need
to add a much smaller amount:

TimeNow = StartTime + 1# / 24# / 60# / 60#

Of course, you need to format that column as a time (something like HH:MN:SS)

HTH,

Eric


Matt S

Time is driving me crazy
 
Thank you egun! Question... why do I need the '#' after the numbers?

"egun" wrote:

Excel should be treating the time you past in as a date. If you add one to a
date, you are adding a day:

Jan-01-2009 + 1 = Jan-02-2009

There are 24*60*60 seconds in a day. So, to add just one second, you need
to add a much smaller amount:

TimeNow = StartTime + 1# / 24# / 60# / 60#

Of course, you need to format that column as a time (something like HH:MN:SS)

HTH,

Eric


JE McGimpsey

Time is driving me crazy
 
The #'s are type codes - indicating that the number is a Double
precision floating point value.

Of course, you don't need to do all the divisions, you could simply use

TimeNow = StartTIme + 1/86400#

or you can let VBA do the math:

TimeNow = StartTime + TimeSerial(0, 0, 1)



In article ,
Matt S wrote:

hank you egun! Question... why do I need the '#' after the numbers?

"egun" wrote:

Excel should be treating the time you past in as a date. If you add one to
a
date, you are adding a day:

Jan-01-2009 + 1 = Jan-02-2009

There are 24*60*60 seconds in a day. So, to add just one second, you need
to add a much smaller amount:

TimeNow = StartTime + 1# / 24# / 60# / 60#

Of course, you need to format that column as a time (something like
HH:MN:SS)



All times are GMT +1. The time now is 07:39 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com