none
Abrir diversas planilhas de uma pasta especifica RRS feed

  • Pergunta

  • Oi pessoal,

    Estou com problemas para fazer um código, pois recebo diversas extrações e preciso abrir todas elas e copiar seus dados em uma Sheet para consolidar tudo.

    Alguem sabe se existe algum codigo, talvez que utilize "for each...", do qual eu escolho a pasta no meu computador e ele vai fazendo o processo de copy/paste de planilha em planilha?

    Agradeço desde ja, abs

    quarta-feira, 2 de abril de 2014 19:29

Respostas

  • Olá, boa tarde.

    Você pode usar algo do tipo:

    Sub AbrirPlanilhas()
    
    Dim wks As Excel.Worksheet
    Dim wkb As Excel.Workbook
    
    'Defina a Pasta aqui
    sCaminho = "C:\Sua Pasta"
    
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFolder = oFSO.GetFolder(sCaminho)   'Estrutura da Pasta de origem
    
    
    For Each sItemFile In oFolder.Files         'Percorrendo toda a pasta
    
        If sItemFile.Type = "Planilha do Microsoft Office Excel 97-2003" Then       'Copiando apenas arquivos xls
            
            sCaminhoArquivo = sItemFile
            Set wkb = Workbooks.Open(sCaminhoArquivo)
            wkb.Activate
            
            'Seu Código...
                  
            Application.DisplayAlerts = False
            wkb.Close
            Application.DisplayAlerts = True
        End If
    Next
    
    MsgBox "Fim da Execução", vbInformation
    End Sub
    

    Ok?


    Filipe Magno

    sábado, 5 de abril de 2014 19:08

Todas as Respostas

  • Boa noite Matheus, 

    Poderia encaminhar um arquivo para verificar quais campos você pretende copiar?

    att

    quarta-feira, 2 de abril de 2014 22:59
  • Desculpa a demora para responder,

    A parte de copiar os dados é a de menos, o que eu preciso saber mesmo é se existe alguma forma de selecionar ou especificar uma pasta e ir abrindo todas as planilhas existentes naquela pasta.

    sexta-feira, 4 de abril de 2014 13:51
  • Olá, boa tarde.

    Você pode usar algo do tipo:

    Sub AbrirPlanilhas()
    
    Dim wks As Excel.Worksheet
    Dim wkb As Excel.Workbook
    
    'Defina a Pasta aqui
    sCaminho = "C:\Sua Pasta"
    
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFolder = oFSO.GetFolder(sCaminho)   'Estrutura da Pasta de origem
    
    
    For Each sItemFile In oFolder.Files         'Percorrendo toda a pasta
    
        If sItemFile.Type = "Planilha do Microsoft Office Excel 97-2003" Then       'Copiando apenas arquivos xls
            
            sCaminhoArquivo = sItemFile
            Set wkb = Workbooks.Open(sCaminhoArquivo)
            wkb.Activate
            
            'Seu Código...
                  
            Application.DisplayAlerts = False
            wkb.Close
            Application.DisplayAlerts = True
        End If
    Next
    
    MsgBox "Fim da Execução", vbInformation
    End Sub
    

    Ok?


    Filipe Magno

    sábado, 5 de abril de 2014 19:08