Código:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim t As ListObject, F As Long, eXl_Rng As Range
'Nombre de la Tabla
Set t = Me.ListObjects("Nombre_Tabla")
F = t.HeaderRowRange.Row
'Nombre de la Columna de activa el registro automático
Set eXl_Rng = Intersect(Target, t.ListColumns("Nombre_Columna").DataBodyRange)
If Not eXl_Rng Is Nothing Then
If eXl_Rng.Value <> "" Then
'Nombre de la Columna donde se registra la Fecha
With t.ListColumns("Nombre_Columna").DataBodyRange
If .Cells(eXl_Rng.Row - F).Value = "" Then
.Cells(eXl_Rng.Row - F).Value = Format(Now, "dd/mm/yyyy")
End If
End With
'Nombre de la Columna donde se registra la Hora
With t.ListColumns("Nombre_Columna").DataBodyRange
If .Cells(eXl_Rng.Row - F).Value = "" Then
.Cells(eXl_Rng.Row - F).Value = Format(Now, "hh:mm:ss")
End If
End With
End If
End If
End Sub