Copiar banco de dados de várias planilhas

Visual Basic for Aplication e macros no Excel.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

Copiar banco de dados de várias planilhas

Mensagempor felipen_ » Seg Jun 11, 2018 11:30 am

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.
Você não está autorizado a ver ou baixar esse anexo.
felipen_
Membro
Membro
 
Mensagens: 37
Registrado em: Sex Jun 08, 2018 2:58 pm
Has thanked: 13 times
Have thanks: 0 time

{ SO_SELECT }

Re: Copiar banco de dados de várias planilhas

Mensagempor wagner » Seg Jun 11, 2018 2:39 pm

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.
Você não está autorizado a ver ou baixar esse anexo.
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel

For this post the author wagner thanked:
felipen_ (Seg Jun 11, 2018 5:05 pm)
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 4294
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 71 times
Have thanks: 1858 times

Re: Copiar banco de dados de várias planilhas

Mensagempor felipen_ » Seg Jun 11, 2018 5:09 pm

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?
Editado pela última vez por wagner em Seg Jun 11, 2018 5:48 pm, em um total de 1 vez.
Razão: Nas respostas não se deve fazer citações de inteiro teor da mensagem que lhe foi enviada sem necessidade
felipen_
Membro
Membro
 
Mensagens: 37
Registrado em: Sex Jun 08, 2018 2:58 pm
Has thanked: 13 times
Have thanks: 0 time

Re: Copiar banco de dados de várias planilhas

Mensagempor wagner » Seg Jun 11, 2018 5:53 pm

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.
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 4294
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 71 times
Have thanks: 1858 times

Re: Copiar banco de dados de várias planilhas

Mensagempor felipen_ » Qui Jun 14, 2018 1:32 pm

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!
Você não está autorizado a ver ou baixar esse anexo.
felipen_
Membro
Membro
 
Mensagens: 37
Registrado em: Sex Jun 08, 2018 2:58 pm
Has thanked: 13 times
Have thanks: 0 time

Re: Copiar banco de dados de várias planilhas

Mensagempor wagner » Qui Jun 14, 2018 3:57 pm

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.
Você não está autorizado a ver ou baixar esse anexo.
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 4294
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 71 times
Have thanks: 1858 times

Re: Copiar banco de dados de várias planilhas

Mensagempor felipen_ » Qui Jun 14, 2018 4:01 pm

Wagner, boa tarde!

Obrigado pela resposta, mas acho que você anexou o mesmo arquivo que eu te enviei, ou estou enganado?
felipen_
Membro
Membro
 
Mensagens: 37
Registrado em: Sex Jun 08, 2018 2:58 pm
Has thanked: 13 times
Have thanks: 0 time

Re: Copiar banco de dados de várias planilhas

Mensagempor wagner » Qui Jun 14, 2018 4:09 pm

Tem razão. Exclui e anexei outro.
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel

For this post the author wagner thanked:
felipen_ (Sex Jun 15, 2018 11:50 am)
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 4294
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 71 times
Have thanks: 1858 times

Re: Copiar banco de dados de várias planilhas

Mensagempor felipen_ » Sex Jun 15, 2018 11:53 am

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!!!
felipen_
Membro
Membro
 
Mensagens: 37
Registrado em: Sex Jun 08, 2018 2:58 pm
Has thanked: 13 times
Have thanks: 0 time

Re: Copiar banco de dados de várias planilhas

Mensagempor wagner » Sex Jun 15, 2018 11:58 am

felipen_,

Bom dia!

Envie os arquivos que você está trabalhando (os 3).
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 4294
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 71 times
Have thanks: 1858 times

Próximo

Voltar para VBA & Macros

Quem está online

Usuários navegando neste fórum: Google [Bot] e 0 visitantes