Notifications
Clear all

Macro para copiar dados de uma aba para outra

4 Posts
2 Usuários
3 Reactions
641 Visualizações
(@joselmar)
Posts: 9
Active Member
Topic starter
 

Olá, eu tenho uma planilha com duas abas "Calculator" e "Results" (em anexo). Na aba "Calculator", o usuário vai preencher alguns dados (nas células marcadas de verde, que ficarão desbloqueadas depois que eu proteger a planilha). Eu preciso que as informações (sem fórmula, apenas o valor) de algumas células (indicadas por números vermelhos) dessa aba ("Calculator") sejam coladas e armazenadas em uma linha na aba "Results" na ordem indicada pelos números vermelhos. No entanto, ao colar, preciso que a linha ativa passe para baixo, de modo que os dados na linha anterior fiquem armazenados e um novo preenchimento na aba "Calculator" seja salvo na linha de baixo. O objetivo é gerar, na aba "Results" uma lista ou um relatório de todos os dados preenchidos pelo usuário (ranqueando as linhas do maior FVI para o menor FVI). FVI está na coluna L. 

Agradeço a quem puder me ajudar. Embora não seja uma tarefa complicada, para mim, que sou usuário amador é um desafio muito grande. Já tentei de tudo! 

Obrigado

 
Postado : 24/06/2023 1:17 pm
(@osvaldomp)
Posts: 857
Prominent Member
 

Experimente:

Sub ReplicaValores()
Dim r As Range, c As Range, k As Long, LR As Long
Set r = Sheets("Calculator").Range("B4:B7,B19,E19,H19,C10,C37,C47,C20,B53,E52")
LR = Sheets("Results").Cells(Rows.Count, 1).End(3).Row
For Each c In r
Sheets("Results").Cells(LR + 1, k + 1) = c.Value: k = k + 1
Next c
End Sub

"(ranqueando as linhas do maior FVI para o menor FVI)" ~~~> Não ficou clara esta parte. Se você se refere a ordenar os valores de FVI em ordem decrescente a cada nova linha preenchida na planilha Results, então é possível acrescentar ao código acima o comando para ordenar.

 

Osvaldo

 
Postado : 25/06/2023 10:19 am
joselmar reacted
(@joselmar)
Posts: 9
Active Member
Topic starter
 

Osvaldo, muito obrigado por ter me enviado essa macro. Resolveu o meu problema!!! 

A ideia do FVI é essa mesmo! Como seria esse comando para ordenar? 

E como eu poderia apagar automaticamente os dados preenchidos na aba Calculator depois de clicar em salvar e mandar para Results? Porque o usuário vai ter que preencher várias vezes a aba Calculator. Apagar os dados preenchidos depois de salvar seria muito útil. 

Mais uma vez, obrigado!!!!!

Joselmar

 
Postado : 25/06/2023 12:26 pm
Osvaldomp reacted
(@osvaldomp)
Posts: 857
Prominent Member
 

Acrescente as duas linhas em vermelho ao código que passei, conforme abaixo.

 

Next c
Sheets("Calculator").Range("B4:B7,B14:B18,E14:E18,H14:H18,C27:D36,C43:D46").Value = "" 'limpa células de Calculator
Sheets("Results").Range("A3:M" & Sheets("Results").Cells(Rows.Count, 1).End(3).Row).Sort Key1:=[L1], Order1:=xlDescending 'ordena os dados de Results
End Sub

Osvaldo

 
Postado : 25/06/2023 9:55 pm
joselmar reacted