OK, create a new file with two sheets. Call one 'Initialise' and the other 'Summary'
Copy all of the routine below down to the line that says 'Copy Above Here' and then paste it into a single module in your workbook. Then put a button in the mioddle of the 'Initialise' sheet and assign the macro CopyMultipleFiles() to it.
The GetDirectory code is thanks to John Walkenbach and his book Excel Power programming with VBA 2002 - Great book for all levels.
Option Explicit
Dim UserFile As String
'32-bit API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO
Dim path As String
Dim r As Long, x As Long, pos As Integer
' Root folder = Desktop
bInfo.pidlRoot = 0&
' Title in the dialog
If IsMissing(Msg) Then
bInfo.lpszTitle = "Select a folder."
Else
bInfo.lpszTitle = Msg
End If
' Type of directory to return
bInfo.ulFlags = &H1
' Display the dialog
x = SHBrowseForFolder(bInfo)
' Parse the result
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Else
GetDirectory = ""
End If
End Function
Sub CopyMultipleFiles()
' This is the macro that the button on the 'Initialise' Sheet initiates
Dim lrow As Long
Dim i As Long
Dim r As Integer
Dim hyprng As String
Dim WB As Workbook
Dim WBr As Range
Dim WBlstrw As Long
Dim CurWks As Worksheet
Dim Msg As String
Dim Sht As Worksheet
On Error Resume Next
Msg = "Please select a Directory to Summarise."
UserFile = GetDirectory(Msg)
If UserFile = "" Then
MsgBox "Canceled"
ElseIf Not ContinueProcedure Then
Exit Sub
End If
Set CurWks = ActiveWorkbook.Worksheets("Summary"
Application.ScreenUpdating = False
lrow = 0
With Application.FileSearch
.SearchSubFolders = True
.NewSearch
.Filename = ".xls"
.LookIn = UserFile
.FileType = msoFileTypeExcelWorkbooks
.Execute
For i = 1 To .FoundFiles.Count
Set WB = Application.Workbooks.Open _
(Filename:=.FoundFiles(i))
WBlstrw = WB.Worksheets(1).Cells(Rows.Count, "A"

.End(xlUp).Row
'Bring in the Data
CurWks.Cells(lrow + 3, "A"

.Resize(WBlstrw, 6).Value = WB.Worksheets(1).Range("A1"

.Resize(WBlstrw, 6).Value
'Bring in the filename
CurWks.Cells(lrow + 3, "H"

.Resize(WBlstrw, 1).Value = WB.FullName
lrow = lrow + WBlstrw
WB.Close savechanges:=False
Next
End With
Set WB = Nothing
Set CurWks = Nothing
Application.ScreenUpdating = True
End Sub
Private Function ContinueProcedure() As Boolean
Dim Config As Integer
Dim Ans As Integer
Config = vbYesNo + vbQuestion + vbDefaultButton2
Ans = MsgBox(UserFile & " <<< Is This The Correct Directory?", Config)
If Ans = vbYes Then
ContinueProcedure = True
Else: ContinueProcedure = False
End If
End Function
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Copy Data above here into a single module in your workbook.
Then just hit the button and select the directory - Must be only Excel files in there. I can always send you the file if you prefer.
Regards
Ken....................