View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default working with hours in xs of 24

Aren't your source values in cells in the worksheet stored as time values?

Why are you then using strings?

myTime = Application.Text(application.Sum(Range("A1:A2")),"[h]:mm")

In any event, do your math with the timeserial numbers. Only use strings
for display purposes.

--
Regards,
Tom Ogilvy

"Graham Y" wrote in message
...
Thanks Bob it works whilst the running total is under 24 hours, but when I
get to say "30:00" + "10:00:00" it fails type mismatch any ideas?

"Bob Phillips" wrote:

In VBA you have to use the worksheet TEXT function

myTime = Application.Text(d1 + d2, "[h]:mm")

--

HTH

Bob Phillips

(replace xxxx in the email address with gmail if mailing direct)

"Graham Y" wrote in message
...
Hi
On a timesheet form I collect start and end times, I want to display
the
hours against each day (no problems) and I want to show the running
total,
for visual error checking. In a cell I would use the format [h]:mm but

this
doesn't work in VBA, d1 & d2 = "18:00:00" format(d1+d2,"[h]:mm") gives
:12
take out the [] and I get 31/12/1899 12:00:00 and what I want is to

display
36:00 in a lable
I've been trying to convert the value in the lable, but I can't do

Csng(lbl)
the function won't convert a String to a Single. How can I get around

this?
Cdate() checks for a valid date format and then does a conversion, so
if

the
hours are <24
if d1="18:00" I can do x= Csng(Cdate(d1)) and get x=18 but it doesn't

work
if d1="36:00"
I'm open to alternative suggestions, but I'd rather not have to write
an
interim value back to the spreadsheet, just seems clumsy.
TIA