Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 26
Default Time Format in VBA doesn't match Excel display

So far I've only tested this in Excel 2000, but a final solution would have
to work in Excel 2003 as well.

I'm reading data from cells in an Excel sheet and using the data to
construct ascii text files. The particular problem I have is this:
The cell I'm reading displays as "113:00:00" in Excel
The format of the cell is Category - Time, Type - 37:30:55 (and the sample
area shows "113:00:00" at this point.
The formula bar shows "1/14/1900 5:00:00 PM"
When reading the cell in my VB program, the raw value of the cell is
"4.70833333333333"
The NumberFormat property of the cell is "[h]:mm:ss"
When I read the cell with this number format (using the Format function), I
get the string ":01:00". The user would expect to see "113:00:00", which
Excel shows him is there.

How can I get the value that Excel is displaying, since using NumberFormat
doesn't work? (I know I could just tell the users to use straight text or
General format, but I would like to accommodate the users' desire to use
Excel formats to make their work easier.)
--
In theory, there is no difference between theory and practice; in practice,
there is.
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 318
Default Time Format in VBA doesn't match Excel display

I suggest that you read the .Text value of the cell rather than the .Value of
the text and format it before writing out the text file. By doing this the
text file will contain the formatted text.

Alok Joshi

"LabElf" wrote:

So far I've only tested this in Excel 2000, but a final solution would have
to work in Excel 2003 as well.

I'm reading data from cells in an Excel sheet and using the data to
construct ascii text files. The particular problem I have is this:
The cell I'm reading displays as "113:00:00" in Excel
The format of the cell is Category - Time, Type - 37:30:55 (and the sample
area shows "113:00:00" at this point.
The formula bar shows "1/14/1900 5:00:00 PM"
When reading the cell in my VB program, the raw value of the cell is
"4.70833333333333"
The NumberFormat property of the cell is "[h]:mm:ss"
When I read the cell with this number format (using the Format function), I
get the string ":01:00". The user would expect to see "113:00:00", which
Excel shows him is there.

How can I get the value that Excel is displaying, since using NumberFormat
doesn't work? (I know I could just tell the users to use straight text or
General format, but I would like to accommodate the users' desire to use
Excel formats to make their work easier.)
--
In theory, there is no difference between theory and practice; in practice,
there is.

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Time Format in VBA doesn't match Excel display

ActiveCell.Text

will give you the displayed value of the cell.

--
regards,
Tom Ogilvy

"LabElf" wrote in message
...
So far I've only tested this in Excel 2000, but a final solution would

have
to work in Excel 2003 as well.

I'm reading data from cells in an Excel sheet and using the data to
construct ascii text files. The particular problem I have is this:
The cell I'm reading displays as "113:00:00" in Excel
The format of the cell is Category - Time, Type - 37:30:55 (and the sample
area shows "113:00:00" at this point.
The formula bar shows "1/14/1900 5:00:00 PM"
When reading the cell in my VB program, the raw value of the cell is
"4.70833333333333"
The NumberFormat property of the cell is "[h]:mm:ss"
When I read the cell with this number format (using the Format function),

I
get the string ":01:00". The user would expect to see "113:00:00", which
Excel shows him is there.

How can I get the value that Excel is displaying, since using NumberFormat
doesn't work? (I know I could just tell the users to use straight text or
General format, but I would like to accommodate the users' desire to use
Excel formats to make their work easier.)
--
In theory, there is no difference between theory and practice; in

practice,
there is.



  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 26
Default Time Format in VBA doesn't match Excel display

Thank you. I'm not reading the active cell, but using the Text property of
the cell I'm reading does give me the displayed value, as you described.
--
Assigning guilt doesn't solve the problem


"Tom Ogilvy" wrote:

ActiveCell.Text

will give you the displayed value of the cell.

--
regards,
Tom Ogilvy

"LabElf" wrote in message
...
So far I've only tested this in Excel 2000, but a final solution would

have
to work in Excel 2003 as well.

I'm reading data from cells in an Excel sheet and using the data to
construct ascii text files. The particular problem I have is this:
The cell I'm reading displays as "113:00:00" in Excel
The format of the cell is Category - Time, Type - 37:30:55 (and the sample
area shows "113:00:00" at this point.
The formula bar shows "1/14/1900 5:00:00 PM"
When reading the cell in my VB program, the raw value of the cell is
"4.70833333333333"
The NumberFormat property of the cell is "[h]:mm:ss"
When I read the cell with this number format (using the Format function),

I
get the string ":01:00". The user would expect to see "113:00:00", which
Excel shows him is there.

How can I get the value that Excel is displaying, since using NumberFormat
doesn't work? (I know I could just tell the users to use straight text or
General format, but I would like to accommodate the users' desire to use
Excel formats to make their work easier.)
--
In theory, there is no difference between theory and practice; in

practice,
there is.




  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 691
Default Time Format in VBA doesn't match Excel display

If you posted the line of code, I'd expect like Tom said that you did not
include .text but used either .value or defaulted to .value
when you specified the cell.


"LabElf" wrote ...
Thank you. I'm not reading the active cell, but using the Text property of
the cell I'm reading does give me the displayed value, as you described.
--
Assigning guilt doesn't solve the problem


!! and if you have a problem and can't identify the culprit
!! how are you going to fix the problem. So I disagree.
!! I think perhaps you are mixing punishment with solution.
!! How about -- If you don't have a problem -- don't fix it.


"Tom Ogilvy" wrote:

ActiveCell.Text

will give you the displayed value of the cell.

--
regards,
Tom Ogilvy

"LabElf" wrote in message
...
So far I've only tested this in Excel 2000, but a final solution would

have
to work in Excel 2003 as well.

I'm reading data from cells in an Excel sheet and using the data to
construct ascii text files. The particular problem I have is this:
The cell I'm reading displays as "113:00:00" in Excel
The format of the cell is Category - Time, Type - 37:30:55 (and the sample
area shows "113:00:00" at this point.
The formula bar shows "1/14/1900 5:00:00 PM"
When reading the cell in my VB program, the raw value of the cell is
"4.70833333333333"
The NumberFormat property of the cell is "[h]:mm:ss"
When I read the cell with this number format (using the Format function),

I
get the string ":01:00". The user would expect to see "113:00:00", which
Excel shows him is there.

How can I get the value that Excel is displaying, since using NumberFormat
doesn't work? (I know I could just tell the users to use straight text or
General format, but I would like to accommodate the users' desire to use
Excel formats to make their work easier.)
--
In theory, there is no difference between theory and practice; in

practice,
there is.








  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 26
Default Time Format in VBA doesn't match Excel display

You and Tom both expected correctly; I was using the .Value property.

My tagline about assigning guilt was a response to the all too common
mentality of trying to solve a problem by finding someone too blame, which
gets into the realm of finger-pointing and buck-passing, and may inhibit
finding the real solution. I agree that sometimes finding the solution
includes detecting someone's mistake. Better wording might be "Punishing the
guilty may not solve the problem"
--
In theory, there is no difference between theory and practice; in practice,
there is.


"David McRitchie" wrote:

If you posted the line of code, I'd expect like Tom said that you did not
include .text but used either .value or defaulted to .value
when you specified the cell.


"LabElf" wrote ...
Thank you. I'm not reading the active cell, but using the Text property of
the cell I'm reading does give me the displayed value, as you described.
--
Assigning guilt doesn't solve the problem


!! and if you have a problem and can't identify the culprit
!! how are you going to fix the problem. So I disagree.
!! I think perhaps you are mixing punishment with solution.
!! How about -- If you don't have a problem -- don't fix it.


"Tom Ogilvy" wrote:

ActiveCell.Text

will give you the displayed value of the cell.

--
regards,
Tom Ogilvy


  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Time Format in VBA doesn't match Excel display

to be clearer, I guess I should have said

ActiveCell.Text

will give you the displayed value of the activecell as an example. Apply
this theory to your actual practice. <g

--
Regards,
Tom Ogilvy

"LabElf" wrote in message
...
Thank you. I'm not reading the active cell, but using the Text property

of
the cell I'm reading does give me the displayed value, as you described.
--
Assigning guilt doesn't solve the problem


"Tom Ogilvy" wrote:

ActiveCell.Text

will give you the displayed value of the cell.

--
regards,
Tom Ogilvy

"LabElf" wrote in message
...
So far I've only tested this in Excel 2000, but a final solution would

have
to work in Excel 2003 as well.

I'm reading data from cells in an Excel sheet and using the data to
construct ascii text files. The particular problem I have is this:
The cell I'm reading displays as "113:00:00" in Excel
The format of the cell is Category - Time, Type - 37:30:55 (and the

sample
area shows "113:00:00" at this point.
The formula bar shows "1/14/1900 5:00:00 PM"
When reading the cell in my VB program, the raw value of the cell is
"4.70833333333333"
The NumberFormat property of the cell is "[h]:mm:ss"
When I read the cell with this number format (using the Format

function),
I
get the string ":01:00". The user would expect to see "113:00:00",

which
Excel shows him is there.

How can I get the value that Excel is displaying, since using

NumberFormat
doesn't work? (I know I could just tell the users to use straight

text or
General format, but I would like to accommodate the users' desire to

use
Excel formats to make their work easier.)
--
In theory, there is no difference between theory and practice; in

practice,
there is.






  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 26
Default Time Format in VBA doesn't match Excel display

Don't sweat it, you were quite clear. I knew exactly what you meant. Also
using the .Text property might simplify some other areas of my code, such as
needing to intercept NumberFormat = "General", which returns "Ge0eral" when
formatting numbers (in my experience).
--
In theory, there is no difference between theory and practice; in practice,
there is.


"Tom Ogilvy" wrote:

to be clearer, I guess I should have said

ActiveCell.Text

will give you the displayed value of the activecell as an example. Apply
this theory to your actual practice. <g

--
Regards,
Tom Ogilvy

"LabElf" wrote in message
...
Thank you. I'm not reading the active cell, but using the Text property

of
the cell I'm reading does give me the displayed value, as you described.
--
Assigning guilt doesn't solve the problem


"Tom Ogilvy" wrote:

ActiveCell.Text

will give you the displayed value of the cell.

--
regards,
Tom Ogilvy


  #9   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,758
Default Time Format in VBA doesn't match Excel display

You sure you weren't using "General" in VBA's Format function?

Option Explicit
Sub testme()

Dim myCell As Range
Set myCell = ActiveSheet.Range("a1")

'This seems to work all the time for me.
With myCell
.NumberFormat = "General"
.Value = 123.45
MsgBox .NumberFormat & vbLf & .Text & vbLf & .Value
End With

'but I think this is the problem & solution
MsgBox Format(123.45, "General") & vbLf & _
Format(123.45, "General Number")

End Sub

("General Number" might alleviate your Ge0eral problem.)


LabElf wrote:

Don't sweat it, you were quite clear. I knew exactly what you meant. Also
using the .Text property might simplify some other areas of my code, such as
needing to intercept NumberFormat = "General", which returns "Ge0eral" when
formatting numbers (in my experience).
--
In theory, there is no difference between theory and practice; in practice,
there is.

"Tom Ogilvy" wrote:

to be clearer, I guess I should have said

ActiveCell.Text

will give you the displayed value of the activecell as an example. Apply
this theory to your actual practice. <g

--
Regards,
Tom Ogilvy

"LabElf" wrote in message
...
Thank you. I'm not reading the active cell, but using the Text property

of
the cell I'm reading does give me the displayed value, as you described.
--
Assigning guilt doesn't solve the problem


"Tom Ogilvy" wrote:

ActiveCell.Text

will give you the displayed value of the cell.

--
regards,
Tom Ogilvy


--

Dave Peterson
  #10   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 691
Default Time Format in VBA doesn't match Excel display

Don't understand why you say the number format does not work, the format
you actually used for correct display can be seen by selecting the
cell and then Format, cells, custom where you would see
[hh]:mm:ss
the square brackets keep the hours from overflowing into days.

Time and date are the same in Excel, time is a fraction of a day so
one hour is 1/24 of a day. The calendar in Excel begins
Jan 1, 2000 with an incorrect leap day added to the year 2000,
which is sort of corrected in the date 2004 format used mainly on Macs.

More information in
http://www.mvps.org/dmcritchie/excel/datetime.htm
you will read pretty much the same about that aspect of date and time relationship at
http://www.cpearson.com/excel/datetime.htm

---
HTH,
David McRitchie, Microsoft MVP - Excel [site changed Nov. 2001]
My Excel Pages: http://www.mvps.org/dmcritchie/excel/excel.htm
Search Page: http://www.mvps.org/dmcritchie/excel/search.htm

"LabElf" wrote in message ...
So far I've only tested this in Excel 2000, but a final solution would have
to work in Excel 2003 as well.

I'm reading data from cells in an Excel sheet and using the data to
construct ascii text files. The particular problem I have is this:
The cell I'm reading displays as "113:00:00" in Excel
The format of the cell is Category - Time, Type - 37:30:55 (and the sample
area shows "113:00:00" at this point.
The formula bar shows "1/14/1900 5:00:00 PM"
When reading the cell in my VB program, the raw value of the cell is
"4.70833333333333"
The NumberFormat property of the cell is "[h]:mm:ss"
When I read the cell with this number format (using the Format function), I
get the string ":01:00". The user would expect to see "113:00:00", which
Excel shows him is there.

How can I get the value that Excel is displaying, since using NumberFormat
doesn't work? (I know I could just tell the users to use straight text or
General format, but I would like to accommodate the users' desire to use
Excel formats to make their work easier.)
--
In theory, there is no difference between theory and practice; in practice,
there is.





Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Excel Formula Bar Time Display Format TanMan Excel Discussion (Misc queries) 2 December 3rd 09 02:59 AM
display time in 12 hour format jatman Excel Worksheet Functions 1 March 20th 08 06:10 AM
Display time format Shane Excel Discussion (Misc queries) 1 July 24th 07 03:37 AM
How do I display time in a negative format? PCERM Excel Worksheet Functions 3 December 28th 05 01:58 PM
display no seconds in time format [h] Finolac Excel Discussion (Misc queries) 1 October 3rd 05 03:19 PM


All times are GMT +1. The time now is 05:50 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"