Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
#63200
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
#63205
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?
#63231
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). ;)
#63233
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
#63239
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 todos
Private 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
IranSST agradeceu por isso
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord