Thread: Add Date
View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.misc
Dave Peterson[_2_] Dave Peterson[_2_] is offline
external usenet poster
 
Posts: 420
Default Add Date

This worksheet_Change event will update the date in column A each time there's a
change anywhere else in the row.

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myCell As Range
Dim myRngToCheck As Range
Dim myIntersect As Range

With Me
Set myRngToCheck = .Range("B1", .Cells(.Cells.Count))

Set myIntersect = Intersect(Target, myRngToCheck)

If myIntersect Is Nothing Then
Exit Sub
End If

Set myIntersect = myIntersect.EntireRow

Application.EnableEvents = False
For Each myCell In Intersect(.Columns(1), myIntersect).Cells
With myCell
'just the date
.NumberFormat = "mmmm dd, yyyy"
.Value = Date
'or use time and date
.NumberFormat = "mmmm dd, yyyy hh:mm:ss"
.Value = Now
End With
Next myCell
Application.EnableEvents = True

End With

End Sub

If you really want the date to be static -- once it's been set, it won't change
even if more changes are made to the row, you could check that cell to see if
it's empty first.

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myCell As Range
Dim myRngToCheck As Range
Dim myIntersect As Range

With Me
Set myRngToCheck = .Range("B1", .Cells(.Cells.Count))

Set myIntersect = Intersect(Target, myRngToCheck)

If myIntersect Is Nothing Then
Exit Sub
End If

Set myIntersect = myIntersect.EntireRow

Application.EnableEvents = False
For Each myCell In Intersect(.Columns(1), myIntersect).Cells
With myCell
If IsEmpty(.Value) Then
'just the date
.NumberFormat = "mmmm dd, yyyy"
.Value = Date
'or use time and date
.NumberFormat = "mmmm dd, yyyy hh:mm:ss"
.Value = Now
End If
End With
Next myCell
Application.EnableEvents = True

End With

End Sub

Each of these are worksheet events.

That means that you can rightclick on the worksheet tab that should have this
behavior and select View|Code.

Then paste the version of the code you want into the code window that just
opened (usually on the right hand side).

ps. You could use the date or date and time. Delete the lines that you don't
want from the procedure.



On 05/18/2010 08:52, Greg D wrote:
We have a spreadsheet that we would like to automatically add the date in the
first cell of each row when information is entered into another cell in that
row. The date would need to remain static once added. Any suggestions?