Notifications
Clear all

Evento Change para data

7 Posts
3 Usuários
0 Reactions
1,579 Visualizações
(@marvini)
Posts: 0
New Member
Topic starter
 

Preciso de uma macro que ao ocorrer a modificação da coluna B (ser preenchida), na coluna A seja adicionada a data atual (sem que essa data mude quando abrir a planilha no outro dia). Alem disso, que ao se apagar o argumento na coluna B, a data da celula vizinha na coluna A suma. Tentei manipular o evento Change, mas nao tive sucesso.

Alguem tem alguma ideia?

 
Postado : 26/07/2017 1:47 pm
(@leandroxtr)
Posts: 0
New Member
 

Poste a planilha para ajudarmos melhor, pois trabalhar sem um "padrão" é complicado.

 
Postado : 26/07/2017 1:50 pm
(@osvaldomp)
Posts: 857
Prominent Member
 
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Column = 2 Then Target.Offset(, -1).Value = IIf(Target.Value <> "", Date, "")
End Sub
 
Postado : 26/07/2017 2:19 pm
(@marvini)
Posts: 0
New Member
Topic starter
 

Então, basicamente o problema é caso seja escrito algo em uma celula na coluna B, a celula vizinha na coluna A deve ser preenchida com a data atualizada. E caso seja apagado ao valor da celula da coluna B, a data na celula vizinha na coluna A deve ser apagada. De forma que se eu fechar a planilha, as datas congelem, ou seja, se eu preencher algo dia 24/07/2017, quando abrir essa planilha em 25/07/2017, as datas preenchidas em outros dias nao alterem.

Obrigadoo

 
Postado : 27/07/2017 6:18 am
(@marvini)
Posts: 0
New Member
Topic starter
 
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Column = 2 Then Target.Offset(, -1).Value = IIf(Target.Value <> "", Date, "")
End Sub

Esse código ajudou, mas caso eu escolha colar mais de um valor na coluna B, da erro no evento change. Tentei tratar o TARGET como vetor e por um ir target>1 e fazer um for para colar date na coluna vizinha, mas deu erro.

 
Postado : 27/07/2017 7:43 am
(@osvaldomp)
Posts: 857
Prominent Member
 

Esse código ajudou,
O código executa o que você pediu antes :!:

mas caso eu escolha colar mais de um valor na coluna B...
sugestão - nos próximos tópicos coloque na primeira postagem TUDO o que você quer, e não apenas parte ;)

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim r As Range
 If Target.Column <> 2 Then Exit Sub
  For Each r In Selection
   r.Offset(, -1).Value = IIf(r.Value <> "", Date, "")
  Next r
End Sub
 
Postado : 27/07/2017 8:06 am
(@marvini)
Posts: 0
New Member
Topic starter
 

Muito obrigado!!!!!!!!!! Vou mudar a forma de postar nas próximas.

 
Postado : 27/07/2017 11:29 am