Este código VBA fará isso:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wk As Workbook
Set wk = ThisWorkbook
Dim ws As Worksheet
Set ws = ActiveSheet
WatchedColumn = 2
BlockedRow = 1
TimestampColumn = 4
Crow = Target.Row
CColumn = Target.Column
If CColumn = WatchedColumn And Crow > BlockedRow Then
Cells(Crow, TimestampColumn) = Now()
End If
End Sub
Você tem que copiar o código, vá em Exibir - > Macros no Excel, Crie um novo nome (qualquer nome é válido) e na coluna da esquerda dê um duplo clique na planilha onde você quer usá-lo (bandeira vermelha na foto) e no lado direito, cole o código.
Esta macro modifica o conteúdo da célula na coluna D sempre que houver uma mudança na mesma linha na coluna B. A variável BlockedRow protege a primeira linha porque geralmente tem rótulos, se você tiver mais de uma linha de rótulos mudou a variável para 2 ou mais.
Se você precisar alterar as colunas, faça a alteração nas variáveis WatchedColumn
e TimestampColumn
. (A = 1, B = 2, C = 3, D = 4, ... e assim por diante).