Notifications
Clear all

varrer multuplas planilhas e importar para uma planilha BD

7 Posts
3 Usuários
0 Reactions
1,320 Visualizações
(@pepadrao)
Posts: 15
Active Member
Topic starter
 

Olá amigos, gostaria de um script para uma planilha banco de dados que varra uma pasta do servidor que possuem dados diarios em várias planilhas e pra uma planilha bando de dados.

O nome das planilhas são janeiro-01, janeiro-02.... para todos os dias do mês e todas possuem uma alimentação e um formato padrão, porém está em linhas, ou seja, gostaria de importar transpondo os dados. Então segue o modelo das planilhas diarias e como gostaria de dispor na planilha BD.

Em suma, varre as planilhas diárias da pasta, e importa transpondo. Agradeceria muito, estou precisando disso para resolver problemas sérios na minha pequena empresa, uma consolidação dos dados.

 
Postado : 25/03/2016 11:44 am
(@mprudencio)
Posts: 2749
Famed Member
 

E necessario mesmo transpor os dados????

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 27/03/2016 9:07 am
(@pepadrao)
Posts: 15
Active Member
Topic starter
 

Se conseguir sem transpor já ajuda demais.

 
Postado : 28/03/2016 11:50 am
(@mprudencio)
Posts: 2749
Famed Member
 

Então ve se isso ajuda

Crie uma pasta com os Arquivos no C: com o nome Arquivos.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 28/03/2016 3:26 pm
(@pepadrao)
Posts: 15
Active Member
Topic starter
 

Então, consegui resolver o problema da importação com o seguinte código.

Sub GerarÁrvoreCompleta1()

Dim strCaminho As String
strCaminho = Sheets("BASE").Cells(1, "B")

Dim fso As Object 'Scripting.FileSystemObject
Dim fld As Object 'Scripting.Folder

Set fso = CreateObject("Scripting.FileSystemObject")
Set fld = fso.GetFolder(strCaminho)
DescePasta fld
Application.ScreenUpdating = False

DescePasta fld
Application.ScreenUpdating = True
End Sub

Private Sub DescePasta(fld As Object) 'fld As Scripting.Folder

Dim subfld As Object 'Scripting.Folder
Dim fl As Object 'Scripting.File
Dim DernLigne As Long
Dim linha As Long

MyPath = ""
'Etapa 1 - Listar todos os arquivos desta Pasta.
For Each fl In fld.Files
DernLigne = Workbooks("Consolidador_2016.xlsm").Worksheets("BASE").Range("A65536").End(xlUp).Row
linha = DernLigne
Do While linha < DernLigne + 14

linha = linha + 1
Workbooks("Consolidador_2016.xlsm").Worksheets("BASE").Range("a" & linha) = fl.Name
Loop

Workbooks.Open (fl.Path)
Workbooks(fl.Name).Worksheets("RESERVAÇÃO").Range("a4:z17").Copy _
Workbooks("Consolidador_2016.xlsm").Worksheets("BASE").Range("b" & (DernLigne + 1))
Workbooks(fl.Name).Close SaveChanges:=False

Next fl

End Sub

Para finalizar a consolidação de dados, eu tenho uma worksheet onde eles são colados, mas o formato não ajuda pois está em linhas ao invés de colunas.

Então criei a worksheet Dados, que é a apresentação das informações importadas no formato banco de dados. Para o RAP 001 por exemplo eu copio a linha e colo transpondo, mas como serão várias linhas de RAP 001 ao longo da worksheet BASE, eu gostaria de um do while/loop ou alguma alternativa que copie, transponha (já fiz a macro de transpor), mas que pule 14 linhas e faça o loop até a última que contenha informação.

Será que poderia me dar essa força?

 
Postado : 30/03/2016 8:14 am
(@edcronos2)
Posts: 346
Reputable Member
 

cara tem como fazer de varias maneiras
mas eu preciso de mais detalhes dos seus dados e dos limites das planilha
e tbm um exemplo manual de como deve ficar , pq vc colocou uma colunas data no bd mas eu não vi nas planilhas
mas pelo visto vc quer varrer e colocar um em baixo do outro
por isso tem que ter uma noção de quantas linhas vai ser o limito ou de colunas

att

 
Postado : 30/03/2016 10:16 am
(@pepadrao)
Posts: 15
Active Member
Topic starter
 

Então, o que eu gostaria, é que os RAPS virassem colunas, ou seja, o RAP 001 ocorrerá de 14 em 14 linhas, então gostaria de 14 em 14 linhas copiar a linha do RAP 001 e colar na worksheet DADOS transpondo para coluna. Isso para todos os RAP's.

 
Postado : 06/04/2016 12:42 pm