Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5
Default Entering Dates and auto-completing

I enter a lot of dates (ddmmmyy) in column A on a month-by-month
basis. Is there a way to just enter the "dd" and have the entry
automatically completed to include the "mmmyy" ? ie, I enter "27" and
when I hit 'enter' the cell is automatically completed to "27Feb04".

It is very easy to do using seperate columns/cells of course, ie in A1
enter "27" and have B1 =A1+38017 (with column B previously formatted
to "ddmmmyy"), but is there a way to accomplish this directly within
the same cell, A1?

Thanks
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Entering Dates and auto-completing

Right click on the sheet tab where you want this behavior and select view
code.

Paste in code like this in the resulting module:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim dt As Date
If Target.Count 1 Then Exit Sub
On Error GoTo ErrHandler
If Target.Column = 1 Then
If IsNumeric(Target.Value) Then
dt = DateSerial(Year(Date), Month(Date), Target.Value)
Application.EnableEvents = False
Target.Value = dt
Target.NumberFormat = "ddmmmyy"
End If
End If
ErrHandler:
Application.EnableEvents = True
End Sub

--
Regards,
Tom Ogilvy



wrote in message
...
I enter a lot of dates (ddmmmyy) in column A on a month-by-month
basis. Is there a way to just enter the "dd" and have the entry
automatically completed to include the "mmmyy" ? ie, I enter "27" and
when I hit 'enter' the cell is automatically completed to "27Feb04".

It is very easy to do using seperate columns/cells of course, ie in A1
enter "27" and have B1 =A1+38017 (with column B previously formatted
to "ddmmmyy"), but is there a way to accomplish this directly within
the same cell, A1?

Thanks



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5
Default Entering Dates and auto-completing

Thanks Tom, that works like magic and it will save me a lot of time -
and mistakes!

I tried it on a new sheet and it works just fine, but when I applied
it to an existing sheet the "year" reverted back to "00". Is there a
way to add this to a pre-existing sheet?

Thanks again, most helpful!


On Mon, 23 Feb 2004 19:34:19 -0500, "Tom Ogilvy"
wrote:

Right click on the sheet tab where you want this behavior and select view
code.

Paste in code like this in the resulting module:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim dt As Date
If Target.Count 1 Then Exit Sub
On Error GoTo ErrHandler
If Target.Column = 1 Then
If IsNumeric(Target.Value) Then
dt = DateSerial(Year(Date), Month(Date), Target.Value)
Application.EnableEvents = False
Target.Value = dt
Target.NumberFormat = "ddmmmyy"
End If
End If
ErrHandler:
Application.EnableEvents = True
End Sub


  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Entering Dates and auto-completing

It shouldn't be a problem. I can't say why it doesn't work in your existing
workbook.

--
Regards,
Tom Ogilvy

wrote in message
...
Thanks Tom, that works like magic and it will save me a lot of time -
and mistakes!

I tried it on a new sheet and it works just fine, but when I applied
it to an existing sheet the "year" reverted back to "00". Is there a
way to add this to a pre-existing sheet?

Thanks again, most helpful!


On Mon, 23 Feb 2004 19:34:19 -0500, "Tom Ogilvy"
wrote:

Right click on the sheet tab where you want this behavior and select view
code.

Paste in code like this in the resulting module:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim dt As Date
If Target.Count 1 Then Exit Sub
On Error GoTo ErrHandler
If Target.Column = 1 Then
If IsNumeric(Target.Value) Then
dt = DateSerial(Year(Date), Month(Date), Target.Value)
Application.EnableEvents = False
Target.Value = dt
Target.NumberFormat = "ddmmmyy"
End If
End If
ErrHandler:
Application.EnableEvents = True
End Sub




  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5
Default Entering Dates and auto-completing

OK, I'll try a few experiments to see if I can find the problem - I'll
let you know.

Thanks again.
Dick

On Mon, 23 Feb 2004 23:20:50 -0500, "Tom Ogilvy"
wrote:

It shouldn't be a problem. I can't say why it doesn't work in your existing
workbook.




  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5
Default Entering Dates and auto-completing

Something very strange is happening here!

Forget what I said earlier about the year reverting to "00" if the
column was pre-formatted to yymmmdd.

What is happening is that the code seems to run for only the first 3
cells ie A1, A2, A3. When we get to A4, the month/year are reset to
Jan/00. The Jan/00 will then continue to be returned from there on
down.

However, if I then select a cell at least 4-5 cells farther down the
column, let's say A10, A11, A12 will all return correct dates - but
A13 will again revert to Jan/00. Very strange!

Now delete that column A. Select new cell A30, enter a digit and then
use up-arrow to go to the cell above. Keep entering a digit and
moving to the cell above using the up-arrow. It all works perfectly
with no resetting to Jan/00.

As I said, something very strange is happening here! Your insight is
much appreciated.

Regards
Dick


On Tue, 24 Feb 2004 17:30:14 +1000, wrote:

OK, I'll try a few experiments to see if I can find the problem - I'll
let you know.

Thanks again.
Dick

On Mon, 23 Feb 2004 23:20:50 -0500, "Tom Ogilvy"
wrote:

It shouldn't be a problem. I can't say why it doesn't work in your existing
workbook.


  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Entering Dates and auto-completing

Are you entering numbers between 1 and 31 inclusive?

Perhaps the strange behavior is because you are entering something that
doesn't resolve to numeric. The code skips if the entry doesn't pass the
isnumeric test.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim dt As Date
If Target.Count 1 Then Exit Sub
On Error GoTo ErrHandler
If Target.Column = 1 Then
If IsNumeric(Target.Value) Then
dt = DateSerial(Year(Date), Month(Date), Target.Value)
Application.EnableEvents = False
Target.Value = dt
Target.NumberFormat = "ddmmmyy"
Else
msgbox Target.Value & " is not numeric"
End If
End If
ErrHandler:
Application.EnableEvents = True
End Sub

You can also turn off the errhandler and see if an entry is causing an error

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim dt As Date
If Target.Count 1 Then Exit Sub
'On Error GoTo ErrHandler
If Target.Column = 1 Then
If IsNumeric(Target.Value) Then
dt = DateSerial(Year(Date), Month(Date), Target.Value)
Application.EnableEvents = False
Target.Value = dt
Target.NumberFormat = "ddmmmyy"
Else
msgbox Target.Value & " is not numeric"
End If
End If
ErrHandler:
Application.EnableEvents = True
End Sub

But if you do get an error, then you will have to specifically reenable
events

Sub Re_enable()
Application.EnableEvents = True
End Sub

--
Regards,
Tom Ogilvy

wrote in message
...
Something very strange is happening here!

Forget what I said earlier about the year reverting to "00" if the
column was pre-formatted to yymmmdd.

What is happening is that the code seems to run for only the first 3
cells ie A1, A2, A3. When we get to A4, the month/year are reset to
Jan/00. The Jan/00 will then continue to be returned from there on
down.

However, if I then select a cell at least 4-5 cells farther down the
column, let's say A10, A11, A12 will all return correct dates - but
A13 will again revert to Jan/00. Very strange!

Now delete that column A. Select new cell A30, enter a digit and then
use up-arrow to go to the cell above. Keep entering a digit and
moving to the cell above using the up-arrow. It all works perfectly
with no resetting to Jan/00.

As I said, something very strange is happening here! Your insight is
much appreciated.

Regards
Dick


On Tue, 24 Feb 2004 17:30:14 +1000, wrote:

OK, I'll try a few experiments to see if I can find the problem - I'll
let you know.

Thanks again.
Dick

On Mon, 23 Feb 2004 23:20:50 -0500, "Tom Ogilvy"
wrote:

It shouldn't be a problem. I can't say why it doesn't work in your

existing
workbook.




  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5
Default Entering Dates and auto-completing

G'day Tom

That's done the trick - thanks very much for all your assistance.
Much appreciated!

Regards
Dick

On Tue, 24 Feb 2004 22:15:36 -0500, "Tom Ogilvy"
wrote:

It appears that every 4th cell is formatted as date. So change the code to
this:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim dt As Date
If Target.Count 1 Then Exit Sub
On Error GoTo ErrHandler
If Target.Column = 1 Then
If IsNumeric(Target.Value2) Then
dt = DateSerial(Year(Date), Month(Date), Target.Value2)
Application.EnableEvents = False
Target.Value = dt
Target.NumberFormat = "ddmmmyy"
End If
End If
ErrHandler:
Application.EnableEvents = True
End Sub

use the Value2 property for the target rather than value. This should clear
it up.


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
entering dates Ed Excel Discussion (Misc queries) 1 November 26th 06 05:42 PM
Entering dates instructorjml Excel Discussion (Misc queries) 3 March 31st 06 08:20 PM
Entering dates Hoddros Excel Discussion (Misc queries) 1 February 20th 06 03:24 PM
Auto Completing Fields but not changing later... jturmel Excel Discussion (Misc queries) 1 October 6th 05 07:42 PM
Auto Complete not completing faerie_bel Excel Discussion (Misc queries) 5 June 10th 05 01:15 PM


All times are GMT +1. The time now is 10:58 AM.

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"