Notifications
Clear all

Macro para copiar dados como valores de outra planilha

3 Posts
3 Usuários
0 Reactions
1,163 Visualizações
 ihan
(@ihan)
Posts: 1
New Member
Topic starter
 

olá. Tenho uma planilha extremamente pesada que leva bastante tempo para abrir e calcular, nela existem vários vínculos e colunas condicionais. Gostaria de fazer uma versão "leve" dessa mesma planilha que transforma todos os condicionais e vínculos em valores preservando a mesma formatação.
Estou tentando usar o código:

Sub OpenWorkbook()

Workbooks.Open "diretório do meu arquivo"
Workbooks.Open"todos os vínculos do meu arquivo"

End Sub

Workbooks("meu arquivo.xlsx").Worksheets("Dados").Range("~tabela 1- (meus dados estão confinados numa tabela mas não sei fazer a referência correta)~").Copy
Workbooks("versão leve.xlsm").Worksheets("Dados").Range("A2").PasteSpecial Paste:=xlPasteValues

Sub CloseWorkbook()
'Close a workbook

'Workbooks("meu arquivo.xlsx").Close SaveChanges:=False
'Workbooks("todos os vínculos do meu arquivo").Close SaveChanges:=False
End Sub

Tenho algumas dúvidas, principalmente em referenciar as tabelas para a cópia. Além disso meu arquivo tem pelo menos mais umas 5 abas de dados com umas 10 tabelas auxiliares nelas. minha dúvida é: como digitar todas as referências delas de maneira eficiente?
também queria que ficasse registrada na versão leve quando foi a última atualização.
Ficarei extremamente grato se alguém puder me ajudar.
OBS: Meu arquivo pesa uns 200 megas por isso que eu não pude anexar aqui

 
Postado : 01/11/2019 7:08 am
(@faraha)
Posts: 28
Eminent Member
 

Bom dia Ihan, tenho interesse em lhe ajudar, mas eu precisaria de informações mais precisas, não consegui entender muito bem o que precisa.

Se puder compartilhar(em site de compartilhamento, ex: sendspace) um modelo da sua planilha(de forma resumida, não precisa ser ela toda), para termos uma referência de onde os dados se localizam, em quais abas se localizam e etc.
Seria positivo também caso pudesse compartilhar já o resultado que espera.

Ficaria mais fácil de entender a sua necessidade e explicar a solução, pois entendi que precisa copiar os dados de uma planilha para uma outra, mas em muitos pontos não vou conseguir te orientar.

No caso o código de exemplo que está demonstrando, ao utilizar a função "PasteSpecial" e definir o valor de "Paste" como "xlPasteValue" estará copiando e colando apenas os valores, formações como cor de célula e outros não serão levados. Seria necessário usar um segundo "PasteSpecial" atribuindo a "Paste" "xlPasteAllUsingSourceTheme".

Não consegui entender se quer copiar a aba toda ou parte dela, então não consigo lhe orientar muito quanto a isto.

Sobre o registro da atualização poderia utilizar alguma célula como campo desta informação, e ao definir esta célula adicione ao final do código:

Range("A1") = Now
 
Postado : 02/11/2019 6:09 am
(@laerteb)
Posts: 67
Trusted Member
 

Bom dia, ihan

Só estou reforçando o que o nosso amigo FarahA lhe disse, como segue abaixo:

É muito importante você anexar uma planilha de exemplo com dados (fictícios) e que não seja o
projeto inteiro (com o trecho que está com dificuldades); explicando com as informações necessárias
para alcançar o seu objetivo (se necessário incluir imagens elucidativas), desta forma podemos
ajudá-lo com maior rapidez e eficácia (a maioria nem olharia este Tópico sem um arquivo exemplo,
pois existe muitas "variáveis" que podem impossibilitar o sucesso parcial ou total da solução
proposta, se não tiver um arquivo exemplo que for disponibilizado) ;) ..

Outra coisa, aqui mesmo no Fórum existe muitos Tópicos que são bem parecidos com as suas
questões, seria muito interessante tu "garimpar" que achará algumas (ou senão todas) as respostas
ou ajudá-lo sobre suas dúvidas.
Use a ferramenta de pesquisa do fórum.

Estamos aguardando sua resposta e seu Feed Back(é muito importante) ... se foi útil, não esqueça de clicar na "mãozinha" :D

LaerteB :D

 
Postado : 03/11/2019 7:11 am