Notifications
Clear all

Importar vários arquivos de uma só vez

6 Posts
2 Usuários
0 Reactions
1,338 Visualizações
leandroxtr
(@leandroxtr)
Posts: 447
Reputable Member
Topic starter
 

Bom dia pessoal,

Desenvolvi um código que faz a importação de 1 planilha em outra. O problema é que isso é feito de forma unitária, ou seja, só dá para importar 1 planilha por vez.

Gostaria de saber se tem como fazer alguma adaptação neste código para que ele permita selecionar todas as planilhas desejadas e importe-las de uma só vez p/ dentro da outra planilha (Plan Importação)

Estou postando anexo a planilha, bem como os exemplos a serem importados!

Obrigado!

Se te ajudou, não se esqueça de dar um like na resposta e marcar o tópico como finalizado.

Abraços!
Leandro Cordeiro

 
Postado : 11/10/2017 6:09 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!

Veja se este código te ajuda:

Sub ImportarVariosArquivos()
    Dim Pasta As String
    Dim Arquivo As String
    
    'Habilita a captura de erros
    On Error GoTo ERRO
    
    'Abre caixa de diálogo para selecionar a pasta onde estão os arquivos a serem importados
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Show
        Pasta = .SelectedItems(1)
    End With
    
    'Lista o primeiro arquivo a ser importado
    Arquivo = Dir(Pasta & "" & "*.xls*")
    
    'Laço para abrir cada um dos arquivos
    Do
        'Antes de abrir verifica se o arquivo não é o próprio (macro)
        If Arquivo <> ThisWorkbook.Name Then
            
            'Abre o arquivo
            Workbooks.Open Pasta & "" & Arquivo
            
            'Copia o conteúdo para a primeira linha vazia
            ActiveSheet.Range("A2:H" & ActiveSheet.[A1].CurrentRegion.Rows.Count).Copy _
            ThisWorkbook.Sheets("Importar").Range("A" & ThisWorkbook.Sheets("Importar").[A1].CurrentRegion.Rows.Count + 1)
            
            'Fecha o arquivo
            Workbooks(Arquivo).Close False
        End If
        
        'Lista cada um dos demais arquivos da pasta
        Arquivo = Dir
    Loop While Arquivo <> ""
    Columns("A:H").AutoFit
    MsgBox "Fim de Importação dos arquivos"
    Exit Sub
ERRO:
    MsgBox "Houve o seguinte erro na importação dos arquivos: " & vbLf & vbLf _
    & "Código do Erro: " & Err.Number & vbLf & "Descrição: " & Err.Description, vbCritical, "Erro na Execução da Macro"
    Exit Sub
End Sub

Abraço

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 11/10/2017 7:09 am
leandroxtr
(@leandroxtr)
Posts: 447
Reputable Member
Topic starter
 

OlÁ!!
Não consigo fazer o teste porque na hora que abre a tela para eu selecionar os itens, só consigo selecionar 1.

Se te ajudou, não se esqueça de dar um like na resposta e marcar o tópico como finalizado.

Abraços!
Leandro Cordeiro

 
Postado : 11/10/2017 7:41 am
leandroxtr
(@leandroxtr)
Posts: 447
Reputable Member
Topic starter
 

Ahh! Entendi
Todos devem estar dentro de uma pasta específica...

Ajudou sim, mas seria interessante que eu conseguisse selecionar as planilhas que precisasse importar, pois demanda tempo ficar movendo e copiando pastas.
Pode confundir um pouco também, pois são muitas plans

Se te ajudou, não se esqueça de dar um like na resposta e marcar o tópico como finalizado.

Abraços!
Leandro Cordeiro

 
Postado : 11/10/2017 7:45 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!

Veja se este código atende:

Sub Importar()
    Dim Arquivo
    
    With Application.FileDialog(msoFileDialogFilePicker)
        .Show
        .AllowMultiSelect = True
        For Each Arquivo In .SelectedItems
            Workbooks.Open Arquivo
            
            'Copia o conteúdo para a primeira linha vazia
            ActiveSheet.Range("A2:H" & ActiveSheet.[A1].CurrentRegion.Rows.Count).Copy _
            ThisWorkbook.Sheets("Importar").Range("A" & ThisWorkbook.Sheets("Importar").[A1].CurrentRegion.Rows.Count + 1)
            
            'Fecha o arquivo
            ActiveWorkbook.Close False
        Next
    End With
    Columns("A:H").AutoFit
    MsgBox "Fim de Importação dos arquivos"
    
End Sub

Abraço

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 23/10/2017 2:44 pm
leandroxtr
(@leandroxtr)
Posts: 447
Reputable Member
Topic starter
 

Exatamente o que eu precisava, meu caro!

Muito Obrigado!

Se te ajudou, não se esqueça de dar um like na resposta e marcar o tópico como finalizado.

Abraços!
Leandro Cordeiro

 
Postado : 23/10/2017 2:50 pm