CONSOLIDAR ARQUIVOS DE UMA PASTA EM UMA ÊNICA PLAN

FERNANDOGOMES 20/07/2015 10:37:42
#449060
Prezados,
Preciso de uma ajuda.
Pretendo criar um código que consolide planilhas extraídas de um sistema.
Vou detalhar para que fique mais fácil:

Há uma pasta contendo arquivos diários, eles possuem o mesmo nome mas com datas diferentes, exemplo: tesouraria 19/07/2015, tesouraria 20/07/2105, tesouraria 21/07/2015 e por aí vai. Extraio estes dados de um sistema diariamente e tenho que consolidá-los em uma única planilha, o que me toma muito tempo!

Gostaria de consolidar os dados de todos os arquivos de excel desta pasta automaticamente, não sendo necessário ter que abrir cada um deles e dar Ctrl C + Ctrl V.

Não é solução criar vínculos, pois os dados são históricos e não serão alterados.

é possível também criar uma espécie de [Ô]loop[Ô] para que quando o código rodar, ele inclua as informações das novas planilhas extraídas e que serão salvas nesta pasta?
TUNUSAT 20/07/2015 13:24:03
#449065
Resposta escolhida
FERNANDOGOMES,

Você precisa fazer uma rotina que vá na pasta e leia os arquivos que tem lá.
Pode usar o FileSystemObject (FSO).

=====================================================
Usando o FileSystemObject - FSO - Tratando arquivos e diretórios.
http://www.macoratti.net/filesyst.htm
=====================================================

Depois de aberto o arquivo ( e ficando em [ô]looping[ô] enquanto encontrar arquivos com as iniciais que você colocou como exemplo: [Ô]tesouraria[Ô]). Você precisa ler o arquivo de modo que ele faça o [Ô]Copiar[Ô] / [Ô]Colar[Ô] do conteúdo deles...

=====================================================
Visual Basic/Excel - Importando e Exportando dados (inserindo dados, criando gráficos, convertendo tabela para Excel, acesso direto à planilha )
http://www.macoratti.net/excel_vb.htm
=====================================================

Tenta gerar algum código que a gente ajuda você aqui.

[][ô]s,
Tunusat.
FERNANDOGOMES 20/07/2015 15:11:32
#449068
Fala TUNUSAT !
Primeiramente, obrigado pela rápida resposta!
Vou estudar o material que você colocou como referência!

Adicionalmente, vou postar um código que encontrei na internet (caso alguém tenha a mesmá necessidade) que faz exatamente o que preciso, posteriormente tenho que dar algum tratamento na planilha para remover cabecalhos e linhas contendo totais, mas nada muito trabalhoso, a parte que me ocupava muito já consegui matar!

Segue código:

Sub Consolidar()
Dim Pasta As String
Dim Arquivo As String

[ô]Seleciona a pasta do Windows onde estão todas as
[ô]pastas de trabalho a serem copiadas
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
Pasta = .SelectedItems(1)
End With

[ô]Armazena o nome do primeiro arquivo (pasta de trabalho) na variável [Ô]Arquivo[Ô]
Arquivo = Dir(Pasta & [Ô]\[Ô] & [Ô]*.xls*[Ô])

[ô]Laço para para percorrer todos os arquivos da pasta do windows
Do

[ô]Abre o arquivo
Workbooks.Open (Pasta & [Ô]\[Ô] & Arquivo)

[ô]Copia a região adjacente à celula A3 para a planilha de consolidação
[A3].CurrentRegion.Copy ThisWorkbook.ActiveSheet.Cells(Cells.Rows.Count, [Ô]A[Ô]).End(xlUp).Offset(1, 0)

[ô]Fecha o arquivo
Workbooks(Arquivo).Close False

[ô]Lista o próximo arquivo
Arquivo = Dir
Loop While Arquivo <> [Ô][Ô]

Application.CutCopyMode = False

MsgBox [Ô]Informações Consolidadas com Sucesso![Ô]

End Sub
Tópico encerrado , respostas não são mais permitidas