Selected Answer
Hi and welcome to the Forum
The commented code below will work if a single cell is changed (which it checks). Note that I've used Now rather than Date + Time
Private Sub Worksheet_Change(ByVal Target As Range)
' do nothing if not a single cell in range
If Target.CountLarge <> 1 Or Intersect(Target, Range("B:BB")) Is Nothing Then Exit Sub
NewVal = Target.Value
Application.EnableEvents = False 'stop undo triggering this again
Application.Undo 'get old value
If Target.Value <> NewVal Then
Application.Undo 'restore new value
Range("A" & Target.Row) = Now
End If
Application.EnableEvents = True
End Sub
To cover the case when Enter is not used to change the value, e.g. you click in another cell, also add this event macro:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Select
End Sub
It just puts the cursor in the new cell (and lets the
Change event macro add the data and time).