Notifications
Clear all

Consolidar diversos arquivos em um arquivo único

7 Posts
3 Usuários
0 Reactions
1,851 Visualizações
(@gpclouro)
Posts: 0
New Member
Topic starter
 

Pessoal boa tarde!

Possuo 15 arquivos com 2 abas cada um deles e gostaria de unir estes 15 arquivos em apenas 1 arquivo com 30 abas!

É possível automatizar este processo?

Desde já agradeço a todos!

 
Postado : 03/06/2016 12:22 pm
(@mprudencio)
Posts: 0
New Member
 

Disponibilize um modelo.

 
Postado : 03/06/2016 1:05 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite,

Veja se este código de exemplo ajuda:

Sub ImportarPlanilhas()
    Dim Pasta As String
    Dim Arquivo As String
    Dim Ws As Worksheet
    
    Pasta = "F:Temp"
    
    Application.ScreenUpdating = False
    Arquivo = Dir(Pasta & "*.xlsx")
    Do
        Workbooks.Open Pasta & Arquivo
            For Each Ws In Worksheets
                Ws.Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
            Next
        Workbooks(Arquivo).Close False
        Arquivo = Dir
    Loop While Arquivo <> ""
    Application.ScreenUpdating = True
    MsgBox "Fim de Execução da Macro"
End Sub

Todos os arquivos (e somente os que devem ser copiados) devem estar na mesma pasta.

Abraço

 
Postado : 03/06/2016 3:47 pm
(@gpclouro)
Posts: 0
New Member
Topic starter
 

JValq,

Sua macro está dando erro pra mim!

Sempre nesta parte "Ws.Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)"

MPrudencio,
Segue modelo!

 
Postado : 13/06/2016 7:30 am
(@mprudencio)
Posts: 0
New Member
 

Afinal tem 1 ou 2 abas cada arquivo?

 
Postado : 13/06/2016 9:36 am
(@gpclouro)
Posts: 0
New Member
Topic starter
 

Nesse caso eu tenho apenas uma!

Mas queria que juntasse todas as abas de cada planilha! Sempre..independente se tiver 1 ou 2

É possível:?

 
Postado : 13/06/2016 12:06 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia,

Testei a macro com os arquivos disponibilizados e funcionou perfeitamente.
De qualquer forma segue novo código onde você pode selecionar a pasta onde estão os arquivos:

Sub ImportarPlanilhas()
    Dim Pasta As String
    Dim Arquivo As String
    Dim Ws As Worksheet
   
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Show
        Pasta = .SelectedItems(1)
    End With
   
    Application.ScreenUpdating = False
    Arquivo = Dir(Pasta & "" & "*.xls*")
    Do
        Workbooks.Open Pasta & "" & Arquivo
            For Each Ws In Worksheets
                Ws.Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
            Next
        Workbooks(Arquivo).Close False
        Arquivo = Dir
    Loop While Arquivo <> ""
    Application.ScreenUpdating = True
    MsgBox "Fim de Execução da Macro"
End Sub

O código funciona independemente da quantidade de planilhas (abas) de cada arquivo (pasta de trabalho).

Abraço

 
Postado : 14/06/2016 5:43 am