Aqui está um pequeno trecho para você começar e lhe dar algumas coisas para pesquisar. Este código irá observar a célula A1 e, se ela for alterada, registrará o tempo que ela muda e o valor que ela leva após alterar a linha 3. Isso provavelmente levará algumas lógicas adicionais para serem úteis. O código vai no código do VBA para a planilha que está mudando.
Private Sub Worksheet_Change(ByVal Target As Range)
'WatchedCell is the cell we want to log changes of, I used cell A1
Dim WatchedCell As Range
Set WatchedCell = Application.ActiveSheet.Range("A1")
'Target comes from the Worksheet_Change event and tells us what changed in the event
'See if the watched cell is among the cells which changed
Dim Inter As Range
Set Inter = Intersect(WatchedCell, Target)
'Insert a row to record the time in the column A and the value after the change in column B
If Not Inter Is Nothing Then
Rows(3).EntireRow.Insert
Application.ActiveSheet.Range("A3") = Now()
Application.ActiveSheet.Range("B3") = WatchedCell
End If
End Sub
Uma questão importante (sugerida por Gary's Student nos comentários à sua pergunta) é que, se, por exemplo, a célula A1 é uma fórmula e só muda quando a célula A2 muda, o Worksheet_Change não reconhece o A1 como alterado quando você altera o A2 porque ele foi alterado devido ao evento Worksheet_Calculate .