Date fomula not working

R

Rick Rothstein

And that is correct... A2 is your INPUT value (a date in THIS year)... if
you Format G2 as Date, the 39450 will turn into the same date as in A2, but
for the previous year. A2 will NOT change... it is your INPUT value... G2
will change because it displays the result of the formula which operates on
the value in A2. There is NO formula you can use to change the value in your
INPUT cell (A2)... you either type into a cell or a formula creates a value
in a cell... you cannot do both in a single cell. If that is, indeed, what
you are trying to do (change the value of what you enter into A2), you will
need to use a VB solution (but it is not recommended as you will have no
traceable record of how the value got into the cell).

--
Rick (MVP - Excel)


FangYR said:
one more thing.
4) G2 reads 39450
 
R

Ron Rosenfeld

Ok David,
I open a new workbook.
1) Format A2 as Date (14-Mar-01, as in dialogue box).
2) Insert formula in G2 which gives a number 693596 (A2 no data yet).
3) Type 1/3 in A2 and it reads 3-Jan-09.

The above is the simpliest way to state my case.
As I said earlier, it worked last year when I got this formula from Ron.

If you think that the formula in G2 was in any way affecting your entry in A2,
you are mistaken.

If you want to make a month/day entry in A2, and have it change to a
month/day/year for 2008, you will need a VB solution.

You could try this:

Right click on the sheet tab.
Select View Code.
In the window that opens, paste the code below.
Read the notes in the code to understand better.

=====================================
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim AOI As Range, c As Range
Dim lCurYear As Long

'As written, this will process all cells in column A change the
'current year to the previous.
'this range can be edited to affect only the desired range

Set AOI = Range("A:A")

If Not Intersect(Target, AOI) Is Nothing Then
Application.EnableEvents = False

For Each c In Intersect(Target, AOI)
If IsDate(c) Then
lCurYear = Year(Date)

'if year entered is this year, subtract one year.
'otherwise, leave the year entered unchanged
'this will make it impossible to enter dates in the current year
'if they are located in the range specified by AOI

If Year(c.Value) = lCurYear Then
c.Value = DateSerial(lCurYear - 1, _
Month(c.Value), Day(c.Value))
c.NumberFormat = "d-mmm-yyyy"
End If
End If
Next c
End If
Application.EnableEvents = True
End Sub
======================================
--ron
 
F

FangYR

Thanks everyone, finally you all understand what I am talking about, but I am
still wondering, why it worked last year. I figured I will have to stick to
this input, 3/1/8.
Thanks again for the patience and effort, and please forgive me if I have
annoyed you in anyway.
 
M

Max

but I am still wondering, why it worked last year ...

FWLIW, I did venture an explanation for you much, much earlier,
re - my response somewhere further up in this thread:
----------------------------------
.. in A2, I enter "1/3" (ie 3th Jan) and I expect A2 to
read "3 Jan 2008", but "3 Jan 2009" appeared.

well, that was precisely my point/suggestion to you in my earlier response,
re:
A real date is a full valid, unambiguous date
(day-month-year) recognized by Excel, eg: 01-Jan-2009.

If you always practice entering dates as full dates, you won't get caught
out with ambiguities such as what happened as you described. If you don't
enter the date with the year in it - that's what you did, Excel will then
assume the year is the current year (from the PC's clock), hence you get:
"3 Jan 2009". You got "3 Jan 2008" previously because you entered it
sometime last year (in 2008). Take my suggestion, never skimp on the data
entry step when it comes to dates. Always enter it unambiguously in full,
inclusive of the year, and use "mmm" format to denote the month as well in
the date entry.
-----------------------------------
I figured I will have to stick to this input, 3/1/8

And sooner or later, you're bound to get into difficulties again with that
kind of ambiguous date input.

My suggestion: Never skimp on the data entry step when it comes to entering
dates. Always enter dates unambiguously in full, inclusive of the year
(enter the year in full, eg: 2008, 2009), and use "mmm" format to denote the
month as well in the date entry (eg: Jan, Feb, etc) -- to distinguish the
"month" part of it clearly from the "day"

Examples of unambiguous date entries:

3 Jan 2008
15 Feb 2009
27 Jul 2007
etc
--
Max
Singapore
http://savefile.com/projects/236895
Downloads:23,500 Files:370 Subscribers:66
xdemechanik
---
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top