Notifications
Clear all

BD alimentado com vba vindo de diversas planilhas

5 Posts
2 Usuários
0 Reactions
1,029 Visualizações
(@belan_)
Posts: 30
Eminent Member
Topic starter
 

Boa tarde Pessoal,
estou com um problema aqui em relação a tentar programar em vba em cima de várias planilhas(aqruivos) diferentes.

Eu quero montar um banco de dados que vai ser alimentado(tem que ser automaticamente) mediante 8 arquivos de planilhas diferentes, quero que o Banco de dados englobe as oito planilhas(detalhe que cada planilha dessas 8 possuem pelo menos 4 abas).

comecei a montar o código na força de vontade, porém não consigo relacionar meu banco de dados com outra planilha externa, visto que eu preciso pegar o nome da coluna, numero da semana e comparar com a aba de uma outra planilha externa e aí sim pegar o valor que atende a legenda nas duas planilhas..

Por exemplo:
aba das Planilhas
nome semana 1 semana 2 semana 3
rafael 40 35 36
matheus 50 60 38
Joao 20 30 60

meu banco de dados que quero montar:
nome semana 1 semana 2 semana 3
rafael quero fazer um codigo que vai varrer a aba de outra planilha vendo o valor que está no rafael lá na semana 1.
matheus
Joao

alguem pode me sugerir algo, ou algum material?

pelo microsoft query, eu consigo fazer isso?
Obrigado

 
Postado : 31/03/2016 10:27 am
(@robo8268)
Posts: 73
Trusted Member
 

Belan, não entendi direito o que a planilha vai fazer, mas basicamente você vai ter que criar objetos do tipo Workbook (arquivo excel completo), Worksheet(aba) e Range(intervalo).

Ex:

Dim arquivoExterno As Workbook
Dim arquivoInterno As Workbook
Dim ws As Worksheet
Dim rng As Range

 Set arquivoExterno = Workbooks.Open("C:DocumentsSuaPlanilha.xlsx")    'apontar o caminho onde o arquivo externo está salvo
Set ws = arquivoExterno.Sheets("Plan1")   'aba do arquivo externo
Set rng = ws.Range("A1:A & Cells(Rows.Count,1).End(xlUp).Row)    'Seleciona toda a coluna A

Set arquivoInterno = ThisWorkbook     'planilha na qual os dados serão copiados

rng.Copy  'Copia os dados da planilha externa

arquivoInterno.Sheets("Plan1").Range("A1").Select
Selection.PasteSpecial xlPasteAll    'Cola os dados da externa na interna


arquivoExterno.Close SaveChanges:=True  'Fecha o arquivo externo.

Basta fazer isso para as outras, e bolar a lógica para comparar os dados.

 
Postado : 31/03/2016 12:33 pm
(@belan_)
Posts: 30
Eminent Member
Topic starter
 

Robo, muito obrigado pela ajuda.

Realmente senti dificuldade para explicar o que quero.. vou tentar postar um exemplo daqui a pouco em .xlsx para ficar melhor.
mas acredito que com o que vc mandou, já abrirá as portas para que eu comece.

obrigado
Belan

 
Postado : 31/03/2016 12:55 pm
(@belan_)
Posts: 30
Eminent Member
Topic starter
 

Vou postar um exemplo do meu banco de dados e na outra resposta eu posto um exemplo da planilha externa.
eu imagino que eu teria que fazer um for para ele percorrer a planilha toda confrontando com a planilha externa, no momento que acha, preenche.

segue Banco de dados.

 
Postado : 31/03/2016 8:38 pm
(@belan_)
Posts: 30
Eminent Member
Topic starter
 

Segue planilha externa.

no caso a todas as duas planilhas estarão na rede da empresa, Posso colocar o endereço do arquivo na rede que também funcionará, correto?

obrigado mais uma vez.

M. Belan

 
Postado : 31/03/2016 8:39 pm