Untested but give this a try
Sub mcrOMACopyAllWbInFolderToActiveSheet()
Dim cel As Range
Dim FileName, ws As Worksheet
Dim rng As Range
Dim destWB As Workbook
Dim pPath As String
Dim ShellApp As Object
' Get user to select folder where the data you wish copied lies.
Set ShellApp = CreateObject("Shell.Application").BrowseForFolder(0, Prompt, 0, OpenAt)
On Error Resume Next
pPath = ShellApp.self.Path
On Error GoTo 0
' everything happens in this block, first check to see if the folder where the data
' resides was selected, then open a new workbook, loop through all files in folder
' and all sheets within each file, copying them to the newly created workbook
' so the data can be formatted for reporting.
Application.ScreenUpdating = 0
If pPath = "" Then
' Cancel was selected
MsgBox "Stopping because you did not select a Folder"
Exit Sub
End If
LR = 1
' Add new workbook here
Workbooks.Add
Set destWB = ActiveWorkbook
With CreateObject("scripting.filesystemobject")
' Loop through all files in folder
For Each FileName In .getfolder(pPath).Files
With Workbooks.Open(FileName)
' Loop through all worksheets in workbook
For Each ws In .Sheets
a = ws.Range("a1:y20")
With destWB.Sheets(1)
.Cells(LR, 1).Resize(UBound(a), UBound(a, 2)) = a
.Cells(LR, "z").Resize(UBound(a)) = ws.Name
LR = .Cells(Rows.Count, "a").End(xlUp).Row + 2
End With
Next
.Close True
End With
Next
End With
Application.ScreenUpdating = 1
End Sub
Bookmarks