Notifications
Clear all

Copiar banco de dados de várias planilhas

34 Posts
4 Usuários
0 Reactions
5,136 Visualizações
(@felipen_)
Posts: 39
Eminent Member
Topic starter
 

Pessoal, bom dia!

Recentemente construí um relatório em Excel aqui para a empresa onde trabalho, porém falta implementar um item.

Preciso manter este DASHBOARD criado na rede, e dentro desta mesma pasta vou manter vários bancos de dados (várias planilhas), contendo as mesmas colunas do banco de dados do DASHBOARD original.

Criei um botão na aba DASHBOARD, onde ela deverá ter a seguinte função: limpar o banco de dados atual, abrir todos os arquivos .xlsx que estão no mesmo caminho, copiar os dados das colunas A até Q e colar no banco de dados do DASHBOARD principal na aba BANCO DE DADOS.

Segue anexo arquivo de exemplo.

Como eu faço isso?

Agradeço quem puder me ajudar.

 
Postado : 11/06/2018 8:30 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

felipen_,

Boa tarde!

Segue seu arquivo após a realização das solicitações que você fez. Para que o mesmo funcione corretamente na sua máquina, alguns detalhes precisam estar em conformidade com as explicações abaixo:
1 - O nome do arquivo que está com a macro (nesse caso Exemplo banco de dados.xlsm), bem como o nome das abas (DASHBOARD e BANCO DE DADOS) são de grande importância para o código e lá estão assim referenciados. Se esses nomes forem alterados, o código deve ser adaptado de modo a refletir os nomes corretos.
2 - Como você não colocou nenhum arquivo de onde os dados devem ser salvos na aba BANCO DE DADOS, fiz um arquivo (com os mesmos dados que já estavam na aba BANCO DE DADOS) e chamei de Arquivo de Teste.xlsx. Esse arquivo também está no arquivo anexo a essa mensagem.
3 - Todos os arquivos a serem abertos devem ficar na mesma pasta onde o arquivo dessa macro estiver. Todos devem ter a extensão .xlsx. Do contrário, o código precisa ser alterado.
4 - Precisa ser inserida, nas referências do VBA, a dll (referência) Microsoft Scripting Runtime. No código eu inseri um comentário sobre como fazer isso.

Veja se é assim.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 11/06/2018 11:39 am
(@felipen_)
Posts: 39
Eminent Member
Topic starter
 

Wagner, boa tarde!

Primeiramente, obrigado pela confecção das macros.

Vamos lá. Eu fiz o que foi pedido no item 4, o Excel está apagando os dados, porém não está copiando os arquivos.

Uma pergunta: eu preciso criar dois botões, um para apagar e outro para copiar, ou clicando no botão existente o Excel já executará as duas funções?

 
Postado : 11/06/2018 2:09 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

felipen_,

Você não leu adequadamente as regras do fórum que postei para você quando da sua entrada no fórum. Não há necessidade de fazer citações de inteiro teor das mensagens que lhe são enviadas. Essa é uma prática desnecessária e vai contra as regras do fórum. Citações, quando estritamente necessárias ao entendimento da mensagem que você quer enviar, devem restringir-se apenas a pequenos trechos.

Quando a sua demanda, você testou com os dois arquivos que enviei? Aqui eles estão funcionando perfeitamente e copiando os dados normalmente.

Só é necessário um botão mesmo. Da forma que está o arquivo que lhe enviei.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 11/06/2018 2:53 pm
(@felipen_)
Posts: 39
Eminent Member
Topic starter
 

Wagner, boa tarde!

Realmente não está funcionando. Eu fiz o que foi pedido no item 4, apaguei aquela parte do programa que você citou (And Right(fl.Name, 10) <> "lha 1.xlsx" And Right(fl.Name, 10) <> "lha 2.xlsx"), salvei a macro, coloquei os dois arquivos em uma pasta separada e tentei rodar a macro. Quando eu clico no botão, o Excel não roda a macro.

Se eu abro a Macro e tento executar por partes, o Excel até abre o arquivo, porém quando tento executar a parte de Atualizar BD, aparece o seguinte erro: "Erro em tempo de execução '9': Subscrito fora do intervalo.

Uma dúvida: os nomes dos arquivos dentro da pasta criada, podem ter qualquer nome, desde que tenham a mesma extensão, correto?

Pode me ajudar com o erro, por favor?

Obrigado!

 
Postado : 14/06/2018 10:32 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

felipen_,

Boa tarde!

Quando você me enviou seu arquivo com a aba BANCO DE DADOS, não pensei que em algum momento ele pudesse estar vazio. Desse modo, cometi um erro de lógica pois quando o Banco de Dados estava vazio a rotina era abandonada e nada ocorria. Nos meus testes, eu sempre colocava dados nessa aba. Por isso o problema não ocorreu comigo.

Corri isso e agora está funcionando perfeitamente. Com relação aos nomes dos arquivos dentro da pasta é isso mesmo. Só precisam ter a extensão .xlsx.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 14/06/2018 12:57 pm
(@felipen_)
Posts: 39
Eminent Member
Topic starter
 

Wagner, boa tarde!

Obrigado pela resposta, mas acho que você anexou o mesmo arquivo que eu te enviei, ou estou enganado?

 
Postado : 14/06/2018 1:01 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Tem razão. Exclui e anexei outro.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 14/06/2018 1:09 pm
(@felipen_)
Posts: 39
Eminent Member
Topic starter
 

Wagner, bom dia!

Realizei o teste novamente, com apenas um arquivo na pasta a macro está sendo executada corretamente.

Porém quando crio mais duas planilhas, com as mesmas colunas e coloco elas dentro da pasta (no total 3 arquivos), e tento executar a Macro, ela somente copia os dados do primeiro arquivo. Dos outros dois arquivos, a macro abre eles, mas não copia os dados e nem fecha os arquivos... Sabe o que pode ser?

Além disso, há como acrescentar na macro uma função que, em toda vez que eu for atualizar o banco de dados, o Excel exclua todos os dados que estão lá?

Então a lógica seria essa:

1) Abrir o Dashboard principal.
2) Clicar no botão da macro.
3) A Macro deverá limpar as informações que existem no banco de dados.
4) Em seguida deverá abrir cada arquivo .xlsx que exista na pasta onde se encontra o dashboard, copiar os dados e colar.

Obrigado pela ajuda!!!

 
Postado : 15/06/2018 8:53 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

felipen_,

Bom dia!

Envie os arquivos que você está trabalhando (os 3).

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 15/06/2018 8:58 am
(@felipen_)
Posts: 39
Eminent Member
Topic starter
 

Wagner, boa tarde!

Não entendi. No anexo seu veio dois arquivos, que era o que eu havia te enviado no início.

Porém fazendo o teste com três arquivos não deu certo.

Ou você quis dizer que anexou nesta sua última mensagem outros arquivos?

 
Postado : 15/06/2018 10:03 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Não. Estou te pedindo os 3 arquivos que você está trabalhando para que eu possa fazer os testes com eles.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 15/06/2018 11:51 am
(@felipen_)
Posts: 39
Eminent Member
Topic starter
 

Wagner, bom dia!

Conforme solicitado, segue anexo os arquivos.

Obrigado!

 
Postado : 18/06/2018 7:25 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

felipen_

Bom dia!

Ok.

Havia em erro de lógica que já consertei. Segue nova versão.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 18/06/2018 8:41 am
(@felipen_)
Posts: 39
Eminent Member
Topic starter
 

Wagner, boa tarde!

Excelente, agora funcionou perfeitamente.

Aproveitando o mesmo tópico, gostaria de pedir uma outra ajuda sua.

Teria como mudara lógica para agora, ao invés da macro apagar os dados do banco, ela somente acrescentar os dados?

Vou precisar das duas macros, uma em que ela apague o banco todo e copie todos os arquivos (essa já fizemos) e outra macro que mantenha o banco de dados atual e somente copie os dados a mais no banco de dados dos arquivos que estiverem na pasta, como se fosse acumulando os dados, sempre da última linha em branco em diante.

Desde já, agradeço!!!

 
Postado : 19/06/2018 1:16 pm
Página 1 / 3