ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Function return a Date, wrong format (https://www.excelbanter.com/excel-programming/286641-function-return-date-wrong-format.html)

kvdwerf

Function return a Date, wrong format
 
Excel 2000 problem:


When putting in a cell a formula referring to a custom VBA function,
that returns a date or variant/date, the result is formatted as a
number.

When putting in a cell a std function like =TODAY(), the result is
formatted as a date.

Questions: does this problem occur in higher versions of Excel as well,
and is there maybe some way around?

I already tried to return a Variant/String containing the preformatted
date, but Excel does not recognize result as a date




'Results in the number "37987" appearing in the cell
Public Function TestDateFormat1() As Date
TestDateFormat1 = Date 'Returns the current system date
End Function

'Results in the number "37987" appearing in the cell
Public Function TestDateFormat2() As Variant
TestDateFormat2 = Date
End Function 'Results in 37987 in the cell


'Results in a left aligned string "2004/01/01" in the cell
Public Function TestDateFormat3() As Variant
TestDateFormat3 = Format(Date, "yyyy/mm/dd")
End Function


Many thanks


---
Message posted from http://www.ExcelForum.com/


J.E. McGimpsey

Function return a Date, wrong format
 
When VBA returns a value to XL, it is parsed much like it would be
if you typed the result in by hand - the format displayed will be
the format of the cell, not of the entry.

Instead of formatting the result, just format the cell.



In article ,
kvdwerf wrote:

Excel 2000 problem:


When putting in a cell a formula referring to a custom VBA function,
that returns a date or variant/date, the result is formatted as a
number.

When putting in a cell a std function like =TODAY(), the result is
formatted as a date.

Questions: does this problem occur in higher versions of Excel as well,
and is there maybe some way around?

I already tried to return a Variant/String containing the preformatted
date, but Excel does not recognize result as a date




'Results in the number "37987" appearing in the cell
Public Function TestDateFormat1() As Date
TestDateFormat1 = Date 'Returns the current system date
End Function

'Results in the number "37987" appearing in the cell
Public Function TestDateFormat2() As Variant
TestDateFormat2 = Date
End Function 'Results in 37987 in the cell


'Results in a left aligned string "2004/01/01" in the cell
Public Function TestDateFormat3() As Variant
TestDateFormat3 = Format(Date, "yyyy/mm/dd")
End Function


Many thanks


---
Message posted from http://www.ExcelForum.com/


kvdwerf[_2_]

Function return a Date, wrong format
 
Thanks.
But this definitely is not sufficient. Try this in a cell

=TestNestedDateFunction(TestDateFormat1()),

with


Public Function TestNestedDateFunction(value As Variant) As String
TestNestedDateFunction = IIf(IsDate(value), "IsDate", "No
IsDate")
End Function


This results in a "Not IsDate", except for the third variant
TestDateFormat3.
And I really need an IsDate outcome, as well as a Date-value resultin
from a TestDateFormatX-cal

--
Message posted from http://www.ExcelForum.com



All times are GMT +1. The time now is 01:26 AM.

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