Ir ao conteúdo
  • Cadastre-se
JKsa

Excel macro que congele datas

Recommended Posts

Pessoal, criei essa macro que copia e cola os valores para outra planilha, O que está faltando para que ela cole somente o valor, sem a fórmula?

Sub AGENDAMENTO()
  
  Dim LR As Long 'retorna o número da última linha com conteúdo na coluna
  LR = Sheets("DADOSAGENDA").Cells(Rows.Count, 2).End(xlUp).Row
  Sheets("AGENDAMENTO").Range("C3:h44").Copy Sheets("DADOSAGENDA").Range("B" & LR + 1)
  ActiveCell.Offset(0, 0).Select
  Range("e3:h44").ClearContents
   
End Sub
    

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olliver, valeu, pela ajuda, mas não funcionou.

 

veja só, são duas planilhas, uma onde são preenchidas informações diariamente e outra para onde os dados ao final do dia são levados. Ao ativar a macro, esta limpa a planilha preenchida e leva os dados para a planilha receptora, onde vão sendo colados sempre abaixo do dia anterior, isso para criar um histórico. o problema está na criação desse histórico, pois como os dados estão sendo levados como fórmulas e não como valores, as fórmulas de datas se alteram todos os dias, ou seja, os dados de ontem, estão com a data atual... entende?

adicionado 6 minutos depois

Eu até tentei fazer isso:

  Sheets("DADOSAGENDA").Range("B" & LR + 1).PasteSpecial xlPasteValues

Mas ele diz que o método PasteSpecial da classe Range falhou. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como ficou seu código após alterar para PasteSpecial?

 

Se a macro anterior estava funcionando e você só fez essa adaptação, devia funcionar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Partindo do seu codigo com a ajuda do colega acima  fiz esta adaptação

 

Verique se funciona!!

 

 

Sub AGENDAMENTO()
  
  Dim LR As Long 'retorna o número da última linha com conteúdo na coluna
  LR = Sheets("DADOSAGENDA").Cells(Rows.Count, 2).End(xlUp).Row
  Sheets("AGENDAMENTO").Range("C3:h44").Copy
  Sheets("DADOSAGENDA").Range("B" & LR + 1).PasteSpecial Paste:=xlPasteValues
  Sheets("AGENDAMENTO").Range("e3:h44").ClearContents
   
End Sub

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 horas atrás, CasaDoHardware disse:

Partindo do seu codigo com a ajuda do colega acima  fiz esta adaptação

 

Verique se funciona!!

 

 

Sub AGENDAMENTO()
  
  Dim LR As Long 'retorna o número da última linha com conteúdo na coluna
  LR = Sheets("DADOSAGENDA").Cells(Rows.Count, 2).End(xlUp).Row
  Sheets("AGENDAMENTO").Range("C3:h44").Copy
  Sheets("DADOSAGENDA").Range("B" & LR + 1).PasteSpecial Paste:=xlPasteValues
  Sheets("AGENDAMENTO").Range("e3:h44").ClearContents
   
End Sub

 

Cara, valeu!

 

Deu muito certo!

 

Obrigado pela ajuda! 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×