This is for recording the date of alteration for a record in a spreadsheet containing many thousand records. I appreciate any suggestions you may have; I can think of no way to do this with a formula, but if it is possible, I prefer it over a macro.
Although you specify only row 2 in your question, you mention thousands of rows, so I assume you want the macro to work for all rows, not just row 2. The following will add a date stamp to column Z in the row where the change occurred. It also works if multiple cells are changed at the same time, for example with a paste or delete operation.
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim cel As Range If Not Intersect(Target, [A:Y]) Is Nothing Then On Error Resume Next Application.EnableEvents = False For Each cel In Target Range("Z" & cel.Row).Value = Date Next cel Application.EnableEvents = True End If End Sub
To install, right-click the sheet tab, click View Code and paste the above into the code window.
Add this in to the code of the sheet where you have the values:
Private Sub Worksheet_Change(ByVal Target As Range) Dim KeyCells As Range Set KeyCells = Range("A2:Y2") If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then Range("Z2").Value = Date End If End Sub
This way once any of the cells in range between A2 & Y2 changes, the value of Z2 will be updated with today’s date.