Ir ao conteúdo
  • Cadastre-se

Macro para Copiar dados de uma Pasta e Colar Valores em outra


Posts recomendados

Boa noite à todos.

Sou novato no fórum e em macros VBA e MUITO NECESSITADO de ajuda...

Estou trabalhando numa grande empresa e preciso desenvolver um novo modelo de análise de demanda X saldos de itens. MUITO IMPORTANTE PARA MINHA CARREIRA..

Existe uma planilha na rede que atualiza os saldos em estoque através de um Transfer .dtf, onde na coluna A estão os produtos e na B o saldo;

Eu elaborei uma planilha onde constam todos os produtos, e criei uma macro que importa os dados desta planilha da rede. Porém, preciso que ao invés de copiar as células e colar, a macro copie e cole somente os valores.

Segue meu código abaixo:

Sub ImportarDados()

Dim wsOrigem As Worksheet

Dim wsDestino As Worksheet

Workbooks.Open Filename:="C:\Documents and Settings\ms606184\Desktop\saldoemestoque.xls"

Set wsOrigem = Workbooks("saldoemestoque.xls").Worksheets("Sheet1")

Set wsDestino = Workbooks("empresa.xlsm").Worksheets("Sheet2")

With wsOrigem

Range("A2:B20000").Copy Destination:=wsDestino.Range("A2:B20000")

End With

Workbooks("saldoemestoque.xls").Close SaveChanges:=True

MsgBox "Importação de Dados Concluída"

End Sub

Preciso dela em valores, pois utilizo a seguinte fórmula para jogar os saldos para os produtos, gerando saldo ZERO para os itens que não aparecem na lista:

=IF(ISNA(VLOOKUP(B6;Sheet2!$A$2:$B$20000;2;FALSE));0;VLOOKUP(B6;Sheet2!$A$2:$B$20000;2;FALSE))

AGRADEÇO MUITO SE ME AJUDAREM, MESMO..

Obrigado já..

Abração

Link para o comentário
Compartilhar em outros sites

Na verdade não ajuda muito, pois achei diferente a ideia, mas agradeço.

Eu preciso que a macro abra o arquivo saldoemestoque.xls, copie os valores contidos entre A2:B20000 da plan1 e cole especial valores em A2:B20000 na plan 2 do arquivo empresa.xlsm. É Possível? Se tiver um código que ajude...

Abraço

Link para o comentário
Compartilhar em outros sites

no seu código substitua estas linhas

With wsOrigem
Range("A2:B20000").Copy Destination:=wsDestino.Range("A2:B20000")

End With

por estas

wsOrigem.Range("A2:B20000").Copy
wsDestino.Range ("A2").PasteSpecial xlValues

Link para o comentário
Compartilhar em outros sites

OSVALDO, ficou perfeito, muito obrigado..

Um detalhe...

Quando a macro tenta fechar o arquivo saldoemestoque, ele pergunta se eu quero manter os dados na área de transferência, e eu tenho que clicar NÃO. Tem como a macro fazer isto automático? Para que a planilha feche sozinha?

Agradeço muito pela força e ajuda tão rápída...

Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...

O Excel tem formas automatizadas de importar dados, se o Excel q você esta trabalhando for bem completo você poderia usar a ferramenta Power Pivot p/ isso. No vídeo abaixo é possível ver o potencial da ferramenta.

 

Na página inicial tb tem outras técnicas de importação, vale a pena dar uma olhada se você souber inglês...

https://www.youtube.com/user/ExcelIsFun

Link para o comentário
Compartilhar em outros sites

 

Nela, sempre menciono um range específico que vai de A2 até B20000, porém, com posso fazer se eu não sei a célula final e gostaria que a macro verificasse??

 

Olá, Mateus.

substitua esta linha

wsOrigem.Range("A2:B20000").Copy

por esta

wsOrigem.Range("A2:B" & Cells(Rows.Count, "B").End(xlUp).Row).Copy
Link para o comentário
Compartilhar em outros sites

  • 10 meses depois...

@osvaldomp

Boa noite preciso de uma ajuda sua para uma macro que estou desenvolvendo para copiar utilizandro wsorigem e wsdestino ate ai esta funcionando bem mas preciso que ela cole as informações sempre na primeira linha vazia da planilha pois a planilha que alimente é apagada diariamente e reescrita

 

Atenciosamente

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...