Notifications
Clear all

inserir data na coluna seguinte a cada alteração

8 Posts
3 Usuários
0 Reactions
2,287 Visualizações
(@nilson1978)
Posts: 73
Trusted Member
Topic starter
 

Bom dia.
Gostaria de mais uma ajuda
Tenho uma lista de contatos e preciso registar as alterações feitas,
ex:
Preciso inserir data e hora de alteração da culna A na próxima coluna (Coluna B), até ai tudo bem, ja tenho esse código, porém se for alterada novamente a coluna A, como já temos a data e hora registrados na coluna B, que a data seja registada na coluna C e assim sucessivamente a cada alteração.
Desde já agradeço a atenção

 
Postado : 22/10/2019 10:19 pm
Mauro Coutinho
(@coutinho)
Posts: 95
Estimable Member
 

nilson, o ideal seria ter postado um modelo ou detalhar uma pouco mais alem de colocar quais rotinas e procedimentos já está utilizando.
Me baseando só pelo o que entendi, copie essas rotinas e coloque no modulo do WorkBook, em: "EstaPasta_de_trabalho.

Na rotina estou considerando os lançamentos na Coluna A, fiz o tratamento para diferenciar qdo é a primeira vez que lançamos e qdo é relançado, ou seja, na primeira vez é descartaado o lançamento na coluna subsequente, só não tratei a questão de DELETAR / APAGAR o conteudo da celula, pois não sei o que iria fazer,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'Armazenamos o valor de qdo selecionamos a celula para as
    'condições de preenchimento
    sValorOld = Target.Value

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim sRow
    Dim sData As Date
    
    sRow = Target.Row 'Linha da Seleção
    sData = Date 'Data do Sistema
    
    'Se a coluna selecionada for diferente da A sai da rotina
    If Target.Column <> 1 Then Exit Sub
    
        Application.EnableEvents = False
    
        If sValorOld = "" Then 'Se o Valor anterior for vazio "Primeiro Lançamento" Sai da Rotina
            Application.EnableEvents = True
            Exit Sub
            
        Else
            'Se não, continua, verifica qual a última coluna preenchida
            'somamos mais um para a proxima coluna
            sRow = Target.Cells(1, Cells.Columns.Count).End(xlToLeft).Column + 1
           
        End If
            'e efetuamos o lançamento
            Target.Cells(Cells.Column, sRow).Value = sData
    
        Application.EnableEvents = True

End Sub

QQ duvida retorne.
[]s
Mauro Coutinho

 
Postado : 23/10/2019 12:28 pm
(@nilson1978)
Posts: 73
Trusted Member
Topic starter
 

Boa tarde.
Desde já agradeço a atenção, irei ver hoje a noite como funciona.
Só não mandei anexo pq não estou encontrando mais como anexar.

 
Postado : 23/10/2019 2:24 pm
(@nilson1978)
Posts: 73
Trusted Member
Topic starter
 

Boa Tarde
Hoje uso esse código, Porem sempre que altero a celula alguma celula da coluna (obss1) ele apenas gera a nova data,
preciso que quando haja essa alteração da coluna (obss1) acrescente a coluna seguinte a nova data e assim sucessivamente

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("obss1")) Is Nothing Then
Application.Intersect(Target.EntireRow, Range("Date1")) = Date
End If

Desde já agradeço a atenção

 
Postado : 26/10/2019 12:17 pm
JSCOPA10
(@jscopa10)
Posts: 344
Reputable Member
 

.
"Só não mandei anexo pq não estou encontrando mais como anexar."
.
nilson1978, se o código do Coutinho não resolver, poste o arquivo no www.sendspace.com ... depois cola o link aqui !!!
.

 
Postado : 26/10/2019 1:28 pm
(@nilson1978)
Posts: 73
Trusted Member
Topic starter
 

Grato pela atenção
Nunca usei mas espero ter conseguido
segue o link
https://www.sendspace.com/file/j9jm3z

 
Postado : 26/10/2019 3:03 pm
Mauro Coutinho
(@coutinho)
Posts: 95
Estimable Member
 

Nilson, veja se seria isso, qq duvida retorne.

https://www.sendspace.com/file/gjsgw1

Mauro Coutinho

 
Postado : 28/10/2019 1:08 pm
(@nilson1978)
Posts: 73
Trusted Member
Topic starter
 

Bom dia
Desculpe a demora em responder acabei me envolvendo em outros projetos pessoais
Acabo de ver sua msg, funcionou perfeitamente.
recebi tbm a ajuda de um ilustre professor de um grupo de whatsapp, ao qual não sei de posso mencionar o nome aqui.
Onde a rotina funciona perfeitamente tbm.
Na Ajuda do prof, as datas são lançadas na coluna seguinte e dicando a esquerda a ultima alteração, com facilidade maior par relatórios
Porém em nas duas macros sujeridas, não consigo bloquear as celulas que receberam as datas, onde evitaria que o operador alterasse a mesma.
Vou lhe enviar o codigo que recebi para ver se poderia me dar essa luz

Desde já agradeço
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("Observações")) Is Nothing Then
'Cria uma variável para ajustar o nome da célula
Dim Celula As String
'Atribui o valor na célula
Celula = "T" & Target.Row
'Seleciona a célula
Range(Celula).Select
'Adiciona uma nova célula e move os valores para a direita

Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
'Insere a data na célula
Range(Celula) = Date

End If

End Sub

 
Postado : 05/11/2019 10:07 pm