Hi Jim!
You don't need VBA to achieve almost the same as you want but read on.
The problem is that Excel uses a date serial number for its dates with
the date serial number being the number of days since 31-Dec-1899.
When you format for dates you are merely "telling" Excel how to
represent the number that you are inputting.
When you input (eg) 030204, Excel interprets this as dateserial number
30204 which is 10-Sep-1982. Pre-formatting for date does not make a
difference because formatting only affects how a number is
represented; it does not affect the underlying entry.
Accordingly, using your rapid entry method, you will always get the
wrong date (although there are some numbers that give the same date in
the year 1900 and possibly others).
What you could do is enter using your system and then use a helper
column to parse the correct date.
Using ddmmyy as your date ordering system the parsing formula would
be:
=DATE(IF(--RIGHT(A1,2)<30,--RIGHT(A1,2)+2000,--RIGHT(A1,2)+1900),INT(A
1/10000),--RIGHT(INT(A1/100),2))
This formula is essentially what Chip is doing with his VBA code for
your entry form.
Having parsed your date in the helper column you can then use:
Copy
Edit > Paste Special > Values
Now you can delete your rapid entry dates.
--
Regards
Norman Harker MVP (Excel)
Sydney, Australia
(e-mail address removed)
Excel and Word Function Lists (Classifications, Syntax and Arguments)
available free to good homes.