Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Convert xx:xx:xx to decimal value so can be summed.
Morning all,
Im having some trouble when summing some time values from my Access Database. The values are all "elapsed times" between one time and another so eg: 00:06:32 would mean a 6 minute and 32 second elapsed time. The problem is that i cannot sum up these values, i just get a 0. I thought i had it beat when i did a little loop as below.. Do Until IsEmpty(ActiveCell) ActiveCell = TimeValue(ActiveCell) ActiveCell.Offset(1,0).Select Loop This didnt work, not sure why but it makes the times a lot bigger than they used to, I know i can convert it inside a cell formula eg: ' = AY301 * 24 ' but i do not want to do it like that, i would like the code to run on the Worksheet_Activate so it simply converts the values when user selects the worksheet. Is this possible or should i just look at trying to use the formula route? Any suggestions are much appreciated. M |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Convert xx:xx:xx to decimal value so can be summed.
Have a go with this -
Sub test() Dim dt As Date Dim rng As Range, cel As Range Set rng = ActiveCell If Len(rng.Offset(1, 0)) Then Set rng = Range(rng, rng.End(xlDown)) End If rng.NumberFormat = "hh:mm:ss" For Each cel In rng dt = -1 On Error Resume Next dt = CDate(cel.Value) On Error GoTo 0 If dt = 0 Then cel.Value = dt End If Next End Sub Regards, Peter T "bUncE" wrote in message ... Morning all, Im having some trouble when summing some time values from my Access Database. The values are all "elapsed times" between one time and another so eg: 00:06:32 would mean a 6 minute and 32 second elapsed time. The problem is that i cannot sum up these values, i just get a 0. I thought i had it beat when i did a little loop as below.. Do Until IsEmpty(ActiveCell) ActiveCell = TimeValue(ActiveCell) ActiveCell.Offset(1,0).Select Loop This didnt work, not sure why but it makes the times a lot bigger than they used to, I know i can convert it inside a cell formula eg: ' = AY301 * 24 ' but i do not want to do it like that, i would like the code to run on the Worksheet_Activate so it simply converts the values when user selects the worksheet. Is this possible or should i just look at trying to use the formula route? Any suggestions are much appreciated. M |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Convert xx:xx:xx to decimal value so can be summed.
Hi,
I managed to work it out, just had to do CDate(TimeValue(ActiveCell)) * 24 which works fine!! Just needed the CDate in there :) Thanks for the reply!! M "Peter T" wrote: Have a go with this - Sub test() Dim dt As Date Dim rng As Range, cel As Range Set rng = ActiveCell If Len(rng.Offset(1, 0)) Then Set rng = Range(rng, rng.End(xlDown)) End If rng.NumberFormat = "hh:mm:ss" For Each cel In rng dt = -1 On Error Resume Next dt = CDate(cel.Value) On Error GoTo 0 If dt = 0 Then cel.Value = dt End If Next End Sub Regards, Peter T "bUncE" wrote in message ... Morning all, Im having some trouble when summing some time values from my Access Database. The values are all "elapsed times" between one time and another so eg: 00:06:32 would mean a 6 minute and 32 second elapsed time. The problem is that i cannot sum up these values, i just get a 0. I thought i had it beat when i did a little loop as below.. Do Until IsEmpty(ActiveCell) ActiveCell = TimeValue(ActiveCell) ActiveCell.Offset(1,0).Select Loop This didnt work, not sure why but it makes the times a lot bigger than they used to, I know i can convert it inside a cell formula eg: ' = AY301 * 24 ' but i do not want to do it like that, i would like the code to run on the Worksheet_Activate so it simply converts the values when user selects the worksheet. Is this possible or should i just look at trying to use the formula route? Any suggestions are much appreciated. M |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
convert a summed time value to hours only | Excel Discussion (Misc queries) | |||
How can I convert decimal commas to decimal points? | Excel Discussion (Misc queries) | |||
convert hrs into decimal | Excel Programming | |||
convert decimal to 16 bit hex | Excel Worksheet Functions | |||
convert decimal number to time : convert 1,59 (minutes, dec) to m | Excel Discussion (Misc queries) |