Ir ao conteúdo
  • Cadastre-se

Excel Registrar valor de uma célula diariamente


Posts recomendados

Olá amigos, poderiam me ajudar?

 

Tenho algumas células calculadas em várias planilhas:

'Plan1' !E5

'Plan2' !E5

'Plan3' !F21

Esses valores mudam constantemente.

Gostaria de registrar esses valores em outra planilha diariamente, junto com a data do dia, para criar uma espécie de banco de dados.

Assim na Plan4 eu teria 4 colunas, uma para cada valor e mais uma para a data de registro.

Gostaria que a planilha fizesse isso automaticamente, sem botão. Não tem problema se precisar abrir a planilha todos os dias. Também não tem problema se pular um dia ou outro.

O objetivo é fazer um acompanhamento da evolução dos valores e criar gráficos.

 

Será que é possível fazer isso no excel?

Link para o comentário
Compartilhar em outros sites

Fiz um exemplo também no google sheets pra facilitar.

https://docs.google.com/spreadsheets/d/1gvMzdkYyd6TVWmkvjtnxnPiA1nNeLAJQG6US6MGAnRY/edit?usp=sharing

 

xls no anexo.

Em resumo, como a planilha "Historico" poderia coletar esses dados automaticamente 1x por dia?

 

Obrigado!

Historico de Registros.xlsx

Link para o comentário
Compartilhar em outros sites

O primeiro código abaixo irá replicar os dados solicitados ao fechar o arquivo. O usuário precisará salvar o arquivo.

O segundo irá replicar os dados ao abrir o arquivo e não depende de ação do usuário.

Ambos devem ser instalados conforme indicado abaixo. Você pode testá-los um de cada vez e então escolher um ou poderá testar os dois juntos.

Os dados serão replicados uma única vez por dia.

 

Para instalar os códigos no módulo de EstaPasta_de_trabalho:
1. copie o código daqui
2. a partir de qualquer planilha tecle 'Alt+F11' para acessar o editor de VBA
3. no lado esquerdo da tela dê duplo clique em  EstaPasta_de_trabalho
4. cole o código na janela em branco que vai se abrir
5. feito! 'Alt+Q' para retornar para a planilha e testar

 

Private Sub Workbook_BeforeClose(Cancel As Boolean)
 If Sheets("Historico").Cells(Rows.Count, 4).End(3) = Date Then Exit Sub
 Sheets("Historico").Cells(Rows.Count, 1).End(3)(2).Resize(, 4) = Array(Sheets("Plan1").[A2], _
  Sheets("Plan2").[A2], Sheets("Plan3").[A2], Date)
End Sub
Private Sub Workbook_Open()
 If Sheets("Historico").Cells(Rows.Count, 4).End(3) = Date Then Exit Sub
 Sheets("Historico").Cells(Rows.Count, 1).End(3)(2).Resize(, 4) = Array(Sheets("Plan1").[A2], _
  Sheets("Plan2").[A2], Sheets("Plan3").[A2], Date)
End Sub

 

Link para o comentário
Compartilhar em outros sites

Amigo, funcionou perfeito, me pediu para salvar como pasta habilitada para macro, ai funcionou beleza.

 

Eu pensei em aplicar esse código também na planilha do google sheets que faz a mesma coisa, mas lá não aceita VBA não é isso? Teria como fazer também para o do google ou não tem como?

 

@osvaldomp gradeço muito ter me ajudado!

Link para o comentário
Compartilhar em outros sites

Amigo, com planilhas do Google eu não consigo lhe ajudar. Se você não obtiver ajuda aqui eu sugiro que você busque um fórum especializado pois aqui é só para Microsoft Office.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!