Ir ao conteúdo

Posts recomendados

Postado

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

Postado

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

Postado

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

Postado

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

Postado

desculpe a falha; acrescente a linha em vermelho

wsOrigem.Range("A2:B20000").Copy
wsDestino.Range ("A2").PasteSpecial xlValues
[COLOR="Red"]Application.CutCopyMode = False
[/COLOR]

Postado

Valeu, cara.. salvou minha vida, pelo menos por agora..hehe, este é um trabalho muito importante para mim....

Me diz uma coisa, aproveitando. É possível inserir uma Msg box no ínicio que pergunte:

Confirma Importação de Dados:

SIM NÃO

MUITO OBRIGADO...

Postado
Sub ImportarDados()
[COLOR="Red"]If MsgBox("Confirma Importação de Dados?", vbYesNo + vbQuestion) = vbNo Then Exit Sub[/COLOR]
Dim wsOrigem As Worksheet
Dim wsDestino As Worksheet

  • 2 anos depois...
Postado

Boa noite.

 

Estou reabrindo este tópico para tirar uma dúvida quanto a macro acima.

 

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

Postado

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

Postado

 

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
  • 10 meses depois...
Postado

@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

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!