Página 1 de 1

Listar arquivos de diversas pastas diferentes

Enviado: 27 Abr 2016 às 19:35
por daniexcel
Pessoal , boa tarde
Estou com uma pequena duvida e acredito que voces podem me ajudar facilmente

Segue meu codigo
Código: Selecionar todos
Sub Abrir_Copiar_Colar()
Dim FSO As Object, Planilha As Object
Dim Pasta As String, OpenBook As String, EsteArquivo As String, MesSelect As String
Dim uLin As Long
    Sheets("Plan1").Select


    Cells.Select
    Selection.ClearContents
    Range("A1").Select
    


 
'Determina o arquivo corrente/Ativo
EsteArquivo = ActiveWorkbook.Name
Set FSO = CreateObject("Scripting.FileSystemObject")

Pasta1 = ThisWorkbook.Path & "\01. Janeiro"
Pasta2 = ThisWorkbook.Path & "\02. Fevereiro"
Pasta3 = ThisWorkbook.Path & "\03. Fevereiro"

Application.ScreenUpdating = False

For Each Planilha In FSO.GetFolder(Pasta1).Files


    If InStr(1, Planilha, "xls") = 0 Then GoTo PRÓXIMO
        
    Workbooks.Open (Planilha)
    OpenBook = ActiveWorkbook.Name
        
    'Seu código para copiar
    
    Totallinha = (Cells(Rows.Count, 1).End(xlUp).Row)
    
    If Totallinha = 2 Then
      Sheets("Plan1").Select
    Range("A2:w2").Select
    Selection.Copy
    
    Else
        
    Sheets("Plan1").Select
    Range("A2:w2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
        
    End If
    'Seu código para colar
    Windows(EsteArquivo).Activate
    Sheets("Plan1").Select
    'Determina qual a ultima linha com registro
    uLin = Cells(Cells.Rows.Count, "A").End(xlUp).Row
    'Seleciona a partir de qual celula (linha/coluna) os dados serão colados
    Range("A" & uLin + 1).Select
    'Cola valores
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

    Application.CutCopyMode = True
    Workbooks(OpenBook).Close False
PRÓXIMO:
Next
Application.ScreenUpdating = True

End Sub
Neste caso, a macro lista apenas uma pasta
Eu gostaria de poder indicar mais de uma pasta
Código: Selecionar todos

Pasta1 = ThisWorkbook.Path & "\01. Janeiro"
Pasta2 = ThisWorkbook.Path & "\02. Fevereiro"
Pasta3 = ThisWorkbook.Path & "\03. Fevereiro"

Application.ScreenUpdating = False

For Each Planilha In FSO.GetFolder(Pasta1).Files

No For each, eu consigo determinar pasta1 como destino... mas eu queria poder indicar pasta2 e pasta3 tambem... deste modo , a macro faria a varredura em 3 pastas e me traria os arquivos destas pastas.
Poderiam me auxiliar, por favor?
Super obrigado

Listar arquivos de diversas pastas diferentes

Enviado: 28 Abr 2016 às 12:45
por Reinaldo
Talvez algo assim:
Código: Selecionar todos
Application.ScreenUpdating = False
For x = 1 To 3
Pasta = ThisWorkbook.Path & "\0" & x & ". Janeiro"
    MsgBox Pasta
    For Each Planilha In FSO.GetFolder(Pasta).Files
     '   .....
    Next
Next