A formula or macro that will place the date in an adjacent column Bany time something is typed in co

M

Mike C

Hello - I am trying to create a formula or macro that simply places
the date in a column each time that I type in an adjacent column.

I tried using =IF(A3="","",TODAY()), but it refreshes the today date
each time I open the worksheet (thus not leaving the prior date in the
cell. Any ideas?

Thanks for any suggestions.
 
G

Gary''s Student

You need an Event (worksheet) macro:

Private Sub Worksheet_Change(ByVal Target As Range)
Set r = Range("A:A")
Set t = Target
If Intersect(t, r) Is Nothing Then Exit Sub
Application.EnableEvents = False
t.Offset(0, 1).Value = Date
Application.EnableEvents = True
End Sub

If you type in column A the date will be recorded in column B.


Because it is worksheet code, it is very easy to install and automatic to use:

1. right-click the tab name near the bottom of the Excel window
2. select View Code - this brings up a VBE window
3. paste the stuff in and close the VBE window

If you have any concerns, first try it on a trial worksheet.

If you save the workbook, the macro will be saved with it.


To remove the macro:

1. bring up the VBE windows as above
2. clear the code out
3. close the VBE window

To learn more about macros in general, see:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

To learn more about Event Macros (worksheet code), see:

http://www.mvps.org/dmcritchie/excel/event.htm
 
D

Dave D-C

This should be a start
(using the SelectionChange Event):

Private Sub Worksheet_SelectionChange( _
ByVal Target As Excel.Range)
Dim iRow&, iCol&
If Target.Cells.Count <> 1 Then Exit Sub
iRow = Target.Row
iCol = Target.Column
If iCol <> 3 Then Exit Sub
If Target.Value = "" Then
Target.Offset(0, 1).Value = Date
End If
' or
If Target.Value = "" And _
Target.Offset(0, 1).Value = "" Then
Target.Offset(0, 1).Value = Date
End If
End Sub ' Dave D-C
 
M

Mike C

You need an Event (worksheet) macro:

Private Sub Worksheet_Change(ByVal Target As Range)
Set r = Range("A:A")
Set t = Target
If Intersect(t, r) Is Nothing Then Exit Sub
Application.EnableEvents = False
    t.Offset(0, 1).Value = Date
Application.EnableEvents = True
End Sub

If you type in column A the date will be recorded in column B.

Because it is worksheet code, it is very easy to install and automatic to use:

1. right-click the tab name near the bottom of the Excel window
2. select View Code - this brings up a VBE window
3. paste the stuff in and close the VBE window

If you have any concerns, first try it on a trial worksheet.

If you save the workbook, the macro will be saved with it.

To remove the macro:

1. bring up the VBE windows as above
2. clear the code out
3. close the VBE window

To learn more about macros in general, see:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

To learn more about Event Macros (worksheet code), see:

http://www.mvps.org/dmcritchie/excel/event.htm

--
Gary''s Student - gsnu2007d







- Show quoted text -

Thanks very much! Works great
 
M

Mike C

This should be a start
(using the SelectionChange Event):

Private Sub Worksheet_SelectionChange( _
  ByVal Target As Excel.Range)
  Dim iRow&, iCol&
  If Target.Cells.Count <> 1 Then Exit Sub
  iRow = Target.Row
  iCol = Target.Column
  If iCol <> 3 Then Exit Sub
  If Target.Value = "" Then
    Target.Offset(0, 1).Value = Date
  End If
  ' or
  If Target.Value = "" And _
     Target.Offset(0, 1).Value = "" Then
    Target.Offset(0, 1).Value = Date
  End If
End Sub ' Dave D-C







- Show quoted text -

Thanks Dave!
 

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