Página 1 de 1
Excel - pegar data e hora se valor da célula for alterado, mas somente se for alterado
Enviado: 24 Mar 2021 às 17:29
por IranSST
Estou tendo dificuldade com o o código VBA, gostaria que a célula "X " pegasse a hora/data que o valor da célula "Y" fosse alterada, a parte de pegar data e hora/data eu já consegui, o problema é que se eu clicar na célula "Y" e sair mesmo sem alterar a hora muda, como se eu tivesse alterado e eu gostaria que a hora/data só alterasse se o valor que está na célula "Y" realmente seja alterada, poderiam me ajudar já tentei de tudo e mas meu conhecimento em VBA é bem limitado
meu código está assim:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.Volatile
If Target.Column = 4 And Target.Value <> "" Then
Range("A" & Target.Row) = Date
Range("B" & Target.Row) = Time
ElseIf Target.Column = 4 And Target.Value = "" Then
Range("A" & Target.Row) = ""
Range("B" & Target.Row) = ""
End If
End Sub
Re: Excel - pegar data e hora se valor da célula for alterado, mas somente se for alterado
Enviado: 24 Mar 2021 às 20:45
por osvaldomp
IranSST escreveu: ↑24 Mar 2021 às 17:29
... se eu clicar na célula "Y" e sair mesmo sem alterar a hora muda, ...
O código que você postou não deveria executar, então provavelmente você deve estar fazendo algo mais do que simplesmente ativar e desativar a célula.
Está apertando F2 ?
Está aplicando duplo clique?
Re: Excel - pegar data e hora se valor da célula for alterado, mas somente se for alterado
Enviado: 25 Mar 2021 às 08:50
por IranSST
O CODIGO EXECUTA QUANDO EU CLICO NA CELULA PARA ESCREVER ALGO E SAIO, INDEPENDENTE DE EU ESCREVER OU NÃO ELE EXECUTA
Re: Excel - pegar data e hora se valor da célula for alterado, mas somente se for alterado
Enviado: 25 Mar 2021 às 08:53
por IranSST
Se ajudar a entender, eu anexei o arquivo, a planilha (worksheet) que eu quero que aconteça a ação informada é a "LEMBRE-SE", inclusive o codigo vba está vinculado a ela, não está em um modulo.
Re: Excel - pegar data e hora se valor da célula for alterado, mas somente se for alterado
Enviado: 25 Mar 2021 às 09:28
por osvaldomp
IranSST escreveu: ↑25 Mar 2021 às 08:53
... inclusive o codigo vba está vinculado a ela, não está em um modulo.
Óbvio, pois os códigos referentes a eventos de planilha obrigatoriamente devem ser instalados no módulo da planilha.
Fiz vários testes na planilha
LEMBRE-SE e tal como comentei antes, ativar e desativar manualmente qualquer célula da coluna D
NÃO EXECUTA O CÓDIGO.
A propósito, este comando ~~~>
Application.Volatile ~~~> não faz sentido, pode ser removido (vai que é ele que tá provocando um efeito
ghost na sua planilha).

Re: Excel - pegar data e hora se valor da célula for alterado, mas somente se for alterado
Enviado: 25 Mar 2021 às 10:18
por IranSST
Entendi, mas aqui quando a coluna "D" está vazia e eu preencho a coluna A e B pega a data e a hora, até ai tudo bem, o problema ocorre que se eu clicar na coluna D pra alterar e mudar de idéia por exemplo "não alterar a coluna q não está mais vazia"
eu queria que ele identifica-se o valor que está na coluna D caso ela não esteja vazia, e só atualiza-se a data e hora novamente se eu alterar, mas se eu clicar 2x na coluna D e sair sem alterar é pra manter a data e hora que estava antes. Ja tentei usar IF porém todas as sinatses que usei não deram certo
Re: Excel - pegar data e hora se valor da célula for alterado, mas somente se for alterado
Enviado: 25 Mar 2021 às 11:08
por osvaldomp
IranSST escreveu: ↑25 Mar 2021 às 10:18
... mas se eu clicar 2x ...
Lembra disto ? ~~~> Está aplicando duplo clique?
Instale uma cópia do código abaixo no lugar do código atual.
Código: Selecionar todosPrivate Sub Worksheet_Change(ByVal Target As Range)
Dim Vold, Vnew
If Target.Count > 1 Then Exit Sub
If Target.Column <> 4 Then Exit Sub
If Target.Value = "" Then
Cells(Target.Row, 1).Resize(, 2) = ""
Else
Vnew = Target.Value
Application.EnableEvents = False
Application.Undo
Vold = Target.Value
If Vnew <> Vold Then Cells(Target.Row, 1) = Date: Cells(Target.Row, 2) = Time
Target.Value = Vnew
Application.EnableEvents = True
End If
End Sub
Re: Excel - pegar data e hora se valor da célula for alterado, mas somente se for alterado
Enviado: 26 Mar 2021 às 11:26
por IranSST

Deu certo, cara muito obrigado