Timestamp no Excel… não está funcionando?

0

Eu sei que esta pergunta já foi feita várias vezes, e eu realmente procurei e tentei resolvê-la com as soluções dadas sem sucesso. Talvez eu esteja fazendo algo errado, mas não sei muito sobre o VBA, então não sei exatamente o que está errado. Basicamente, tenho valores que estou inserindo na coluna E, e quero que um registro de data e hora seja atualizado automaticamente na coluna G quando o respectivo valor em E for modificado.

Eu usei o seguinte código deste site link :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
        With Target
            If .Count > 1 Then Exit Sub
            If Not Intersect(Range("A2:A10"), .Cells) Is Nothing Then
                Application.EnableEvents = False
                If IsEmpty(.Value) Then
                    .Offset(0, 1).ClearContents
                Else
                    With .Offset(0, 1)
                        .NumberFormat = "dd mmm yyyy hh:mm:ss"
                        .Value = Now
                    End With
                End If
                Application.EnableEvents = True
            End If
        End With
    End Sub

Eu tentei modificá-lo para caber na minha consulta, mas quando eu insiro um valor na coluna G, nada aparece na coluna E. Alguém pode explicar como eu posso fazer isso funcionar?

Obrigado

    
por Alti 08.09.2014 / 04:26

1 resposta

2

Seu código monitora a coluna A, as células A2 a A10, não a coluna E. Ele coloca o registro de data e hora com um deslocamento de 1 nas respectivas células na coluna B.

Se você quiser monitorar a coluna E e inserir o registro de data e hora na coluna G, altere o código para

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
        With Target
            If .Count > 1 Then Exit Sub
            If Not Intersect(Range("E:E"), .Cells) Is Nothing Then
                Application.EnableEvents = False
                If IsEmpty(.Value) Then
                    .Offset(0, 2).ClearContents
                Else
                    With .Offset(0, 2)
                        .NumberFormat = "dd mmm yyyy hh:mm:ss"
                        .Value = Now
                    End With
                End If
                Application.EnableEvents = True
            End If
        End With
    End Sub
    
por 08.09.2014 / 04:56