Note: The other languages of the website are Google-translated. Back to English

Como inserir o carimbo de data / hora atual quando os dados em outra célula são alterados no Excel?

Suponha que você receba uma planilha que precisa que você modifique os dados em uma determinada coluna. E depois de modificar a planilha, você precisa inserir o timestamp modificado para que outras pessoas saibam quais células foram alteradas. Como lidar com isso? Este artigo mostrará o método de inserção do carimbo de data / hora atual quando os dados em outra célula forem alterados no Excel, conforme a captura de tela abaixo.

Insira o carimbo de data / hora atual quando os dados em outra célula mudarem com o código VBA


Insira o carimbo de data / hora atual quando os dados em outra célula mudarem com o código VBA

Conforme a imagem abaixo mostrada, você precisa preencher o carimbo de data / hora na coluna E se as células correspondentes na coluna C forem alteradas. Faça o seguinte.

1. Na planilha que você precisa modificar e marcar com carimbo de data / hora, clique com o botão direito na guia da planilha e clique em Ver código no menu do botão direito.

2. Em seguida, copie e cole o código VBA abaixo no Código janela do Microsoft Visual Basic para Aplicações janela. Veja a imagem:

Código VBA: insira o carimbo de data / hora atual quando os dados em outra célula forem alterados

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20180830
Dim xCellColumn As Integer
Dim xTimeColumn As Integer
Dim xRow, xCol As Integer
Dim xDPRg, xRg As Range
xCellColumn = 3
xTimeColumn = 5
xRow = Target.Row
xCol = Target.Column
If Target.Text <> "" Then
    If xCol = xCellColumn Then
       Cells(xRow, xTimeColumn) = Now()
    Else
        On Error Resume Next
        Set xDPRg = Target.Dependents
        For Each xRg In xDPRg
            If xRg.Column = xCellColumn Then
                Cells(xRg.Row, xTimeColumn) = Now()
            End If
        Next
    End If
End If
End Sub

Importante: No código, o número 3 significa que você vai modificar os dados na coluna C e 5 indica que o carimbo de data / hora será preenchido na coluna E. Por favor, altere-os com base nas suas necessidades.

3. aperte o outro + Q chaves para fechar o Microsoft Visual Basic para Aplicações janela.

A partir de agora, ao alterar os dados na coluna C, o carimbo de data / hora será preenchido nas células correspondentes na coluna E, conforme a imagem abaixo mostrada.

Gorjeta. Data Picker. o Inserir Data utilidade de Kutools for Excel ajuda a inserir rapidamente a data com o formato de data especificado em uma célula selecionada.
Baixe e experimente agora! (Trilha livre de 30 dias)


Artigos relacionados:


As melhores ferramentas de produtividade para escritório

O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%

  • armadilha para peixes: Insira rapidamente fórmulas complexas, gráficos e qualquer coisa que você tenha usado antes; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • Barra Super Fórmula (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
  • Mesclar células / linhas / colunas sem perder dados; Dividir o conteúdo das células; Combinar linhas / colunas duplicadas... Evite células duplicadas; Comparar intervalos...
  • Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
  • Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
  • Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
  • Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
  • Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
  • Mais de 300 recursos poderosos. Suporta Office / Excel 2007-2019 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Teste gratuito de 30 dias com recursos completos. Garantia de devolução do dinheiro em 60 dias.
guia kte 201905

Guia do Office traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
parte inferior da aba do escritório
Comentários (52)
Ainda não há classificações. Seja o primeiro a avaliar!
Este comentário foi feito pelo moderador no site
Oi, A fórmula acima será útil para a atualização do carimbo de hora de célula única Ex: Se inserirmos algum dado na 3ª célula, o carimbo de hora será atualizado automaticamente na 5ª célula. Por favor, aconselhe para atualização de várias células. Ex: Se inserirmos algum dado na 3ª célula, o carimbo de hora será atualizado automaticamente na 5ª célula e se entrarmos na 4ª célula, ele será atualizado na 6ª célula.
Abdul
Este comentário foi feito pelo moderador no site
Eu também estou interessado nesta questão exata. Você encontrou uma resposta? Meu comentário sobre isso chamará a atenção de mais alguém para a pergunta?!
Tyler
Este comentário foi feito pelo moderador no site
Estou colando várias linhas e colunas de dados (de uma só vez e sempre ao mesmo tempo). eu gostaria que o carimbo de hora fosse exibido apenas em uma célula. em outras palavras, sempre que a célula C9 mudar (o canto superior esquerdo dos meus dados), exiba a hora na célula A1. qualquer ajuda seria muito apreciada!
eric
Este comentário foi feito pelo moderador no site
como podemos bloquear o formato de hora .. porque ele atualiza toda vez e insere data e hora.
novembro
Este comentário foi feito pelo moderador no site
Estou criando uma planilha no Excel onde desejo rastrear o horário de início e término de uma transação específica usando um carimbo de data/hora. Uma coluna também mostrará a duração do tempo. Por favor, veja a imagem abaixo. Alguém pode me ajudar? Imagem abaixo.

Encontrei 2 códigos VBA que registram carimbos de data/hora. No entanto, não sei como mesclá-los para que funcionem nesta planilha:


Código 1 . Ele mostra o carimbo de data/hora na coluna "Hora de início" (B4) quando você insere um número de transação na coluna "ID do caso" (A4).


Private Sub Worksheet_Change (ByVal Target As Range)
On Error GoTo Handler
Se Target.Column = 1 e Target.Value <> "" Then
Application.EnableEvents = False
Target.Offset(0, 1) = Format(Now(), "mm/dd/aaaa HH:mm:ss")
Application.EnableEvents = True
Se acabar
Manipulador:
End Sub


Código 2. Mostra o carimbo de hora na coluna "End Time" (D4) se uma seleção de uma lista suspensa na coluna "Status" (C4) for selecionada.


Private Sub Worksheet_Change (ByVal Target As Range)
Dim xCellColumn como inteiro
Dim xTimeColumn como inteiro
Dim xRow, xCol como inteiro
xCellColumn = 3
xTimeColumn = 4
xLinha = Alvo.Linha
xCol = Alvo.Coluna
If Target.Text <> "" Then
Se xCol = xCellColumn Então
Cells(xRow, xTimeColumn) = Now()
Se acabar
Se acabar
End Sub
chia
Este comentário foi feito pelo moderador no site
Querida cia,
Não viu sua imagem. Por favor, clique no botão Carregar arquivos abaixo para carregar sua foto.
cristal
Este comentário foi feito pelo moderador no site
Qual é o código se eu quiser marcar várias células individualmente na mesma planilha?
Exemplo: Alteração na coluna 3, carimbo de data/hora na coluna 5. Alteração na coluna 10, carimbo de data/hora na coluna 11. Alteração na coluna 13, carimbo de data/hora na coluna 14.
xCellColumn = 3
xTimeColumn = 5
Maria
Este comentário foi feito pelo moderador no site
Querida Mary,
O código VBA a seguir pode ajudá-lo. Obrigado pelo seu comentário.

Private Sub Worksheet_Change (ByVal Target As Range)
Escurecer eu enquanto
Dim J enquanto
Escurecer xCols por muito tempo
Dim xSRg como intervalo
Dim xRgEx como intervalo
Dim xSRgArea como intervalo
Dim xNextArea como intervalo
On Error Resume Next
Application.EnableEvents = False
Set xSRg = Union(Range("C:C"), Range("E:E"), Range("J:K"), Range("M:N"))
Definir xRgEx = Intersect(xSRg, Target)
Se xRgEx não for nada, vá para ExitSub
Para I = 1 Para xSRg.Areas.Count
J = eu
Definir xSRgArea = xSRg.Areas.Item(I)
If xRgEx.Column = xSRgArea(1).Column Then
xCols = xSRgArea.Columns.Count
Se xCols = 1 Então
Definir xNextArea = xSRg.Areas.Item(J + 1)
Se xNextArea não for nada, então
Ir Para Sair Sub
ElseIf xNextArea.Columns.Count = 1 Then
xNextArea(xRgEx.Row).Value = Now()
Sair para
Se acabar
ElseIf xCols = 2 Then
xSRgArea.Columns(2).Rows(xRgEx.Row).Value = Now()
Sair para
Se acabar
Se acabar
Seguinte
ExitSub:
Application.EnableEvents = True
End Sub
cristal
Este comentário foi feito pelo moderador no site
Você pode compartilhar o que precisa ser atualizado para torná-lo específico para outra planilha? Por exemplo, mudanças no timestamp C em E, mudanças no timestamp G em I, mudanças no timestamp O em Q.
Britni Smith
Este comentário foi feito pelo moderador no site
Eu simplesmente juntei o primeiro código mencionado acima, alterando todas as variáveis ​​de VAR para VAR1/VAR2/VAR3 etc.
WD
Este comentário foi feito pelo moderador no site
Oi, pode ser feito se algum valor for alterado e o timestamp for atualizado apenas em uma célula específica como A1
Suresh Thangaiyan
Este comentário foi feito pelo moderador no site
Bom dia,
Se você deseja sempre exibir o carimbo de data/hora na célula A1 se algum valor for alterado em um determinado intervalo. O seguinte código VBA pode ajudar.

Private Sub Worksheet_Change (ByVal Target As Range)
Dim xRg como intervalo
On Error Resume Next
Set xRg = Intersect(Target, Range("B1:D4"))
Se xRg não for nada, saia do sub
Range("A1").Value = Now()
End Sub
cristal
Este comentário foi feito pelo moderador no site
oi Crystal, isso é muito bom, como posso obter a alteração do timestamp em cada linha correspondente quando qualquer célula do intervalo de células na respectiva linha muda. Como A2 deve ser atualizado com timestamp quando quaisquer alterações são feitas entre B2 para H2 e assim por diante com A3, A4 etc.
Farid
Este comentário foi feito pelo moderador no site
Eu tenho um banco de dados no excel que preciso acompanhar o que foi alterado.
É possível modificar o código para que, se forem feitas alterações na planilha 1, duplique a célula alterada na planilha 2 e forneça um carimbo de hora ao lado dela?
Amelius George
Este comentário foi feito pelo moderador no site
Dia bom,
Desculpe não pode ajudar com isso. Obrigado pelo seu comentário.
cristal
Este comentário foi feito pelo moderador no site
Muito obrigado por isso! Eu uso botões de rolagem para adicionar 1 ao meu total toda vez que concluo uma tarefa, mas as macros não registram alterações nos botões. Depois de fazer mais algumas pesquisas, descobri como atribuir uma macro aos meus botões de controle e agora posso rastrear minhas alterações !!!! Eu estava tornando isso mais complicado do que precisava ser, e foi o que acabei com:


Sub carimbo de data/hora()
'
' Macro de carimbo de data/hora
' Timestamp nos botões de rolagem
'
'
Range("j2").Value = Now()

End Sub
Leslie
Este comentário foi feito pelo moderador no site
Oi, Isso funciona perfeitamente se eu alterar manualmente a célula, quando copio e colo as informações não está funcionando. Estou tentando ter esse carimbo de data/hora toda vez que alguém cola novas informações. Em vez de alterar as informações das células uma a uma, o comportamento que desejo capturar é quando os dados são colados em massa para várias células. Alguém sabe o que devo fazer?


Obrigado,
Diego
Este comentário foi feito pelo moderador no site
muito obrigado por isso, porém o timestamp só muda se o valor na célula for alterado "manualmente". Se for alterado devido a uma alteração em outra célula e o valor for alterado como parte de uma fórmula, não haverá carimbo de data/hora. Você tem uma solução para isso? obrigado! Denis
Dennis
Este comentário foi feito pelo moderador no site
Caro Dennis,
O código foi atualizado com o problema resolvido. Obrigado por seu comentário.
cristal
Este comentário foi feito pelo moderador no site
Oi,

Isso é exatamente o que eu estava procurando! No entanto, eu queria saber se você pode me ajudar a fazê-lo funcionar com uma planilha protegida. Parece funcionar apenas em um desprotegido (quando o carimbo de data/hora é atualizado devido a uma alteração no valor como parte de uma fórmula, semelhante à solicitação de Dennis).

Muito obrigado! Basílio
Bassel
Este comentário foi feito pelo moderador no site
Oi,
Isso também pode funcionar em uma planilha protegida. Você precisa formatar as células alteradas e as células de carimbo de data/hora para o status desbloqueado com antecedência antes de proteger a planilha. Por favor, tente novamente. Obrigado por seu comentário.
cristal
Este comentário foi feito pelo moderador no site
Oi,


É possível alterar o código para que qualquer alteração em várias colunas gere um novo carimbo de data/hora na mesma célula? Ou seja, eu faço uma edição em qualquer uma das células A3, B3 ou C3 e o timestamp atualiza apenas em C4?


Além disso, é possível fazer com que o código se aplique apenas a um intervalo específico dentro de uma planilha?


obrigado
Alec
Este comentário foi feito pelo moderador no site
Oi Alec
Por favor, tente o código VBA abaixo. Obrigado pelo seu comentário.

Private Sub Worksheet_Change (ByVal Target As Range)
Dim xRRg, xRg como intervalo
Dim xRgArray como variante
Dim xStrCell As String
Dim xSCRg como intervalo
Dim xStrResult As String
xRgArray = Array("A1:C10")
xStrCell = "A3, B3, C3"
xStrResult = "C4"
On Error Resume Next

Se Target.Cells.count > 1, então Exit Sub
Para xFNum = LBound(xRgArray) Para UBound(xRgArray)
If xRgArray(xFNum) <> "" Então
Definir xRg = Range(xRgArray(xFNum))
Se não xRg não é nada, então
Definir xSCRg = Nulo
Definir xSCRg = xRg.Range(xStrCell)
xSCRg.Selecionar
Se não xSCRg não é nada, então
If Not Intersect (xSCRg, Target) não é nada, então
Definir xRRg = xRg.Range(xStrResult)
Se xRRg não for nada, saia do sub
xRRg.Value = Now()
Sair para
Se acabar
Se acabar
Se acabar
Se acabar
Próximo xFNum
End Sub
cristal
Este comentário foi feito pelo moderador no site
Ei, espero que você ainda veja isso!!! Estou usando o código abaixo para uma atualização de carimbo de data/hora no C6 sempre que o C5 for atualizado. O problema é que quando estou no resto da planilha, sempre que pressiono enter ou tab, ele volta para C5. Alguma ideia?

Dim xRRg, xRg como intervalo
Dim xRgArray como variante
Dim xStrCell As String
Dim xSCRg como intervalo
Dim xStrResult As String
xRgArray = Array("C5:C6")
xStrCell = "C5"
xStrResult = "C6"
On Error Resume Next

Se Target.Cells.Count> 1 Then Exit Sub
Para xFNum = LBound(xRgArray) Para UBound(xRgArray)
If xRgArray(xFNum) <> "" Então
Definir xRg = Range(xRgArray(xFNum))
Se não xRg não é nada, então
Definir xSCRg = Nulo
Definir xSCRg = xRg.Range(xStrCell)
xSCRg.Selecionar
Se não xSCRg não é nada, então
If Not Intersect (xSCRg, Target) não é nada, então
Definir xRRg = xRg.Range(xStrResult)
Se xRRg não for nada, saia do sub
xRRg.Value = Now()
Sair para
Se acabar
Se acabar
Se acabar
Se acabar
Próximo xFNum
End Sub
Chama
Este comentário foi feito pelo moderador no site
Ei, isso é semelhante ao que eu exijo, gostaria que um carimbo de data e hora fosse atualizado na coluna AG quando as células entre A e AH são atualizadas.
Eu tentei o código acima, mas não tive sorte.
Rachel
Este comentário foi feito pelo moderador no site
Tenho um projeto no qual estou trabalhando e atualizo regularmente. É principalmente para acompanhar as informações do meu funcionário, como números de telefone, expiração da carteira de motorista etc. Como atualizo com tanta frequência, quero um carimbo de data e hora automático que fique na parte superior ou inferior da minha planilha que será atualizado com a data de hoje toda vez que eu atualize as informações em QUALQUER LUGAR na planilha. Atualmente, uso AN e 1-42, então preciso de um carimbo em torno de M40. Como ficaria esse código?
Jessica
Este comentário foi feito pelo moderador no site
Abra o Developer e em sua pasta de trabalho selecione a pasta de trabalho e o evento BeforeSave.


No sub coloque o código: Range("M40").value = Now
Tychabrahe
Este comentário foi feito pelo moderador no site
Adicionar o timestamp funciona muito bem e é muito útil. Porém recebo um erro ao excluir uma linha, pois o script não consegue inserir o timestamp na linha que não existe mais.


Seria ótimo se alguém pudesse aconselhar como resolver isso.
Sander
Este comentário foi feito pelo moderador no site
Olá Sander,
Não há nenhum erro ocorrer no meu caso. Você pode me dizer sua versão do Excel? Obrigado pelo seu comentário.
cristal
Este comentário foi feito pelo moderador no site
Oi Crystal, isso é muito bom, como posso obter a alteração do timestamp em cada linha correspondente quando qualquer célula do intervalo de células na respectiva linha muda. Por exemplo, A2 deve ser atualizado com carimbo de data/hora quando quaisquer alterações são feitas na segunda linha entre B2 e H2 e, da mesma forma, A3 obtém o carimbo de data/hora quando as alterações são feitas em B3 para H3 e assim por diante até a última linha.
Farid
Este comentário foi feito pelo moderador no site
Olá a todos

Agradecemos antecipadamente a sua ajuda.

Qual deve ser o código para atualizar a hora atual na célula na coluna X se houver uma alteração em qualquer célula dessa linha? Por exemplo, qualquer alteração nos valores das células a2 a w2, então o tempo deve ser atualizado em x2.


Obrigado novamente.
Sentil Kumar S
Este comentário foi feito pelo moderador no site
A funcionalidade de carimbo de data/hora seria ignorada se o arquivo do Excel que você está usando for atualizável?
spen
Este comentário foi feito pelo moderador no site
Dia bom,
O código não suporta dados de conexões. Desculpe pela inconveniência.
cristal
Este comentário foi feito pelo moderador no site
Gents,

Já faz um mês que estou procurando uma solução semelhante como esta. Embora a solução acima pareça ser OTM, estou usando isso para o mercado de ações.
Então eu tenho a Coluna F onde implementei uma estratégia de Compra/Venda e a planilha continua sendo atualizada a cada 1 minuto. Eu tenho a coluna T onde quero o carimbo de hora com base nas seguintes condições:

(1) Coluna F - Sinaliza uma compra ou venda
(2) Coluna F - Mudanças de uma compra para venda ou venda para compra
(3) Coluna F - Mudanças de uma compra/venda para vazia

Enquanto a solução geral que está disponível na rede parece estar funcionando (fórmula do Excel), mas quando os dados são atualizados, ele marca a hora atual do que a hora do sinal. Por exemplo, se eu receber uma compra às 9h15 e se o horário atual for 10h30, eu vejo 10h30 na coluna T (horário do sinal) e não 9h15.

Qualquer ajuda seria muito apreciada.

Atenciosamente
JT
JediTrader
Este comentário foi feito pelo moderador no site
5/15/19|1:41 PM|John Smith|125B-1|10000000|Equipment|Staff|5/15/19|2:43 PM|Staff

A postagem acima mostra os dados inseridos em uma linha. Eu estava procurando ajuda para atualizar as 2 primeiras colunas que contêm um carimbo de data/hora sempre que a coluna ID (10000000) é preenchida. Se possível, os carimbos de data/hora também podem ser removidos se o ID também for removido? Em relação às últimas 3 colunas (data|hora|staff), esses carimbos de data e hora podem ser atualizados sempre que a última coluna for preenchida com um nome de equipe. Tentei brincar com o código, mas minha falta de conhecimento com VBA só me permitiu fazer muito.
Luis
Este comentário foi feito pelo moderador no site
Olá Cristal,
Estou tentando criar uma função onde, se eu atualizar qualquer célula em H9:L9 na planilha 1, o carimbo de data/hora na célula C2 na planilha 2 deve ser atualizado.
Agora preciso fazer isso em cerca de 100 linhas na planilha 1 (H10:L10, H11:L11) e atualizar C3, C4 .... na planilha 2

Qualquer ajuda é muito apreciada. Saúde.!
ajax
Não há comentários postados aqui ainda
carregar mais
Deixe o seu comentário
Postando como convidado
×
Avalie esta postagem:
0  Personagens
Locais sugeridos