Notifications
Clear all

Importar via VBA entre planilhas

14 Posts
3 Usuários
0 Reactions
2,353 Visualizações
(@luizhcosta)
Posts: 0
New Member
Topic starter
 

Olá,

Bom dia!

Estou precisando fazer uma importação entre arquivos e preciso de ajuda de todos.
Tenho 2 arquivos com informações que se atualizam várias vezes ao longo do dia. A importação leva em conta 2 colunas que serão utilizadas como CHAVES.
As opções de PROV, INDIRETO foram descartadas devido a possíveis falhas do usuário, então a melhor alternativa seria uma macro.
Estou anexando um arquivo com a estrutura dos arquivos, um exemplo de cada arquivo e como deve proceder a importação.
Para aqueles que já dominam o VBA creio ser uma rotina a criação das macros, mas confesso que vislumbro um trabalho complicado.
Por isso vou ficar na esperança que alguém possa me ajudar.

Lembrando que, trata-se de 2 arquivos na mesma pasta. Como susgestão, os arquivos poderiam ser nomeados como origem.xls e destino.xls.

Obrigado.

 
Postado : 20/02/2015 9:00 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Porque então que você não grava uma macro com as mesmas formulas que você descartou, porém via Macro.

Eu tenho várias postagens (use a pesquisa), com exemplos de com inserir formula matricial e formula e funções via VBA.

Att

 
Postado : 20/02/2015 10:55 am
(@luizhcosta)
Posts: 0
New Member
Topic starter
 

Olá Alexandre, sempre alerta !

Bom, vamos nós outra vez. Esta outra planilha é um complemento da anterior, a qual já considero resolvida. Eu imaginei uma rotina que faz a importação das informações de uma planilha para outra obedecendo a 2 critérios de comparação (chaves). Quando eu disse que havia descartado as funções, era também pelo fato de que as mesmas deveriam ser inseridas linha a linha na planilha que receberia as informações, Isso deixaria a planilha pesada e pouco funcional. Eu me recordo de uma fórmula matricial que postei aqui e foi convertida da VBA, mas ela apenas tatalizava uma coluna em razão de 2 critérios. Não lembro de nenhuma outra.
Já vi alguns posts sobre a importação, já tentei adaptá-los. Não consegui.
A solução via VBA me pareceu mais flexivel no momento de fazer adaptações, isso ao contrário de ter que verificar intervalos longos com fórmulas.
Além de que, a importação se aplicará em uma considerável quantidade de linhas.
Porém, caso você afirme não ser possível, vou começar a perambular mais algum tempo na rede.

Em todo caso obrigado pela atenção.

 
Postado : 20/02/2015 11:35 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Na guia Exemplo Origem, seria a representação do arquivoOrigem e você pretende deixar como Exemplo Destino,do arquivoDestino ?

Qual critério seria para importar os dados...?

A coluna de nome NUM MAPP? caso igual então importar..?

Att

 
Postado : 20/02/2015 12:47 pm
(@luizhcosta)
Posts: 0
New Member
Topic starter
 

Sim! "..Na guia Exemplo Origem, seria a representação do arquivoOrigem ..."

O critério seria a correspondência de "NUM MAPP" com "Nº PROJETO MAPP" e também "FONTE RECURSO" com "FONTE".

A importação será de todos os valores numéricos das coluna "VAL PROGRAMADO 2007"...e "VAL EMPENHADO 2007).... para as colunas "VALOR ATUAL 2007"... e "EMPENHADO 2007"....

sendo que; VAL PROGRAMADO 2007 corresponde na outra planilha a VALOR ATUAL 2007 e assim sucessivamente para os demais anos 2008, 2009....)

A guia EXEMPLO DESTINO pode ser utilizada para receber as importações fazendo referencias aos critérios descritos acima, ou seja, todos os atuais valores contantes podem ser desprezados.

 
Postado : 20/02/2015 12:58 pm
(@luizhcosta)
Posts: 0
New Member
Topic starter
 

Boa noite Alexandre,

Muito complicada minha dúvida?

Boa tarde!!

Na guia Exemplo Origem, seria a representação do arquivoOrigem e você pretende deixar como Exemplo Destino,do arquivoDestino ?

Qual critério seria para importar os dados...?

A coluna de nome NUM MAPP? caso igual então importar..?

Att

 
Postado : 25/02/2015 11:04 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Veja se ajuda.

Att

 
Postado : 26/02/2015 9:42 am
(@luizhcosta)
Posts: 0
New Member
Topic starter
 

O arquivo parece vazio...

 
Postado : 26/02/2015 10:30 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Veja agora...

Att

 
Postado : 26/02/2015 1:11 pm
(@vitorf91)
Posts: 0
New Member
 

Bom dia Alexandre,

Utilizando a dúvida do colega. Imaginemos que este arquivo Origem possua várias abas separadas em um critério. É possivel fazer esta pesquisa sem ter que mensurar qual aba você quer fazer a pesquisa? Por exemplo, ele buscar em todas as abas de uma vez só uma única referencência e puxe para o ArqDestino o valor?

 
Postado : 27/02/2015 5:29 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Sim!!!

Sub Um_Exemplo()
'Este execemplo mere adaptação, seria só uma demonstração
'de como copia o mesmo intervalo de todas as guias
    Dim ws As Worksheet
     
    Application.ScreenUpdating = False
    Sheets("GuiaPrincipal").Activate
     
    For Each ws In Worksheets
        If ws.Name <> "GuiaPrincipal" Then
            ws.Range("F46:O47").Copy 'Copia mesmo intervalo de várias guias
            ActiveSheet.Paste Range("A65536").End(xlUp).Offset(1, 0) 'Cola na guia ativa que neste cao é GuiaPrincipal
        End If
    Next ws
End Sub

Mas neste caso merece uma adaptação ao meu modelo de importar dados.

Att

 
Postado : 27/02/2015 6:46 am
(@luizhcosta)
Posts: 0
New Member
Topic starter
 

Olá Fernando,

Estarei fazendo alguns testes com seu código. Apenas para dar um retorno.

 
Postado : 27/02/2015 8:13 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Eu fico no aguardo de seu retorno!

Olá Fernando,

Meu nome é: Alexandre :)
Att

 
Postado : 27/02/2015 8:40 am
(@vitorf91)
Posts: 0
New Member
 

Bom dia!!

Sim!!!

Sub Um_Exemplo()
'Este execemplo mere adaptação, seria só uma demonstração
'de como copia o mesmo intervalo de todas as guias
    Dim ws As Worksheet
     
    Application.ScreenUpdating = False
    Sheets("GuiaPrincipal").Activate
     
    For Each ws In Worksheets
        If ws.Name <> "GuiaPrincipal" Then
            ws.Range("F46:O47").Copy 'Copia mesmo intervalo de várias guias
            ActiveSheet.Paste Range("A65536").End(xlUp).Offset(1, 0) 'Cola na guia ativa que neste cao é GuiaPrincipal
        End If
    Next ws
End Sub

Mas neste caso merece uma adaptação ao meu modelo de importar dados.

Att

Em respeito deste código, há como relacionar como se fosse um proch? Por exemplo, eu tenho uma planilha com todos os itens e outra com os mesmos itens mas separados em abas. Mas eu gostaria de puxar o valor de uma coluna X relacionada ao item de uma coluna Y.

Como faria?

 
Postado : 02/03/2015 5:14 am