Registrando data e a hora de alteração no Excel sem VBA
Veja como registrar o momento exato da alteração de uma célula sem usar macros, apenas a função =Agora(), ou, se preferir: Atalhos.
Por Maximiliano Meyer em 04/11/2015 às 16:47 - atualizado: 10/08/2017 08:10
Compartilhe no Facebook Compartilhe no Twitter 184 0
Temos vários posts onde colocamos códigos VBA aqui no nosso site. E um deles que mais faz sucesso entre os leitores é este que você pode conferir clicando aqui, onde ensinamos a registrar a data e a hora em que houve uma alteração em sua planilha através de algumas linhas de código.
Porém, alguns leitores têm receio em trabalhar com os códigos e acabar fazendo algo que não deve. E se esse é o seu caso, não se assuste, pois não será por isso que você deixará de aproveitar esse recurso =D
Vamos aprender a partir de agora como obter o mesmo resultado utilizando somente fórmulas e nem uma linha de código sequer. Confira:
Usaremos para isso a função =Agora(). Veja que a sintaxe dela está completa e não será necessário nem mesmo 1 argumento sequer. Facílima de ser implementada, assim como a função =Hoje() coloca a data atual na tela, a função =Agora() coloca a data e a hora atual no momento de sua inserção.
Ela age da seguinte forma: Após inserida em sua planilha, cada vez que algum dado for modificado, não importando aonde, o resultado da fórmula =Agora() será atualizado para a data e hora exata de tal mudança. Vamos ver na prática. Imagine o seguinte exemplo:
Veja que é um controle de saída bastante simples e que na célula de data eu estou preenchendo manualmente com a data e a hora da negociação. Se você tem 50 notas para preencher na tarde irá ter problemas em digitar 50 vezes a data e a hora, mas caso você implemente a função =Agora() tudo isto será feito automaticamente. Veja o resultado:
Pronto, agora a cada info modificada em QUALQUER lugar da planilha irá fazer com que ocorra a atualização. Assim como no registro feito através de VBA, mas usando apenas as funções nativas do Excel.
Mas e se você quiser mais precisão e quiser incluir os segundos? Fácil. Faça o seguinte: Clique com o botão direito na célula onde está a função =Agora() e depois clique em "Formatar células..." No menu esquerdo clique em "personalizado" e então na caixa de texto que conterá "dd/mm/aaaa hh:mm" (caso não esteja selecionado este valor, procure-o na listagem) adicione ":ss". Clique no Ok e pronto, mais precisão, impossível.
O mesmo vale para caso você queira exibir apenas a hora (selecione hh:mm na janela de formatar células) ou apenas a data (dd/mm/aa ou dd/mmm ou mmm/aa, etc.). Você pode brincar e escolher a forma que melhor se adapta ao seu trabalho.
Veja na prática como ficará:
Mas e se você não quiser que a célula final (aquela do horário e data) seja alterada a cada nova entrada de dado, apenas quando determinada célula for preenchida? Podemos fazer isso e tudo que utilizaremos, além da função =Agora(), será a função condicional =Se().
Não darei uma aula completa aqui falando da =Se, pois temos um post só pra ela, mas, resumidamente, ela retorna um valor determinado por nós quando uma certa condição for atingida. Sabendo isso faremos o seguinte: Vamos configurar a função =Se para retornar em branco quando a última célula a ser preenchida estiver vazia, e retornar a função =Agora() quando esta célula contiver qualquer tipo de dados.
Assim, ela só vai printar data e hora quando a última célula disponível para preenchimento receber algo e também não ficará atualizando a cada momento. Voltando ao exemplo acima, irei tomar como última célula aquela referente à quantidade. A fórmula ficará =SE(E4="";"";AGORA()).
Repare que entra as aspas não há nada. Essa é a célula vazia a qual me referi. Bem veja agora na pratica como funcionará e note que a função =Agora() só é chamada quando há entrada de dados em E4, aquela célula referente à quantidade e, se apagarmos seu conteúdo, a data e hora some.
Outros métodos de fazer este processo
E se você não quiser utilizar esta fórmula, pois não quer que ela seja alterada a cada novo dígito inserido, mas também não quer envolver a função =Se? Então a solução é você usar os atalhos do teclado. Por exemplo: Navegue até a célula que quer colocar a data ou a hora e pressione:
Bom pessoal. Agora você já sabem como registrar de maneira automática (ou nem tanto, caso prefiram) a hora de alteração de uma célula específica. A partir daqui é com a criatividade de vocês. Abaixo, o download da planilha que usamos na aula.