Option Explicit
Dim wbSourceBook As Workbook, wbDesBook As Workbook
Dim wsSheet As Worksheet
Dim rSourceRange As Range, rDesRange As Range
Dim rNum As Long, i As Long, a As Long, r As Long, z As Long, e As Long, n As Long, m As Long
Dim f As String, Directory As String
Sub ListFiles()
Directory = "D:\YourDirectoryHere\"
Application.DisplayAlerts = False
Application.ScreenUpdating = False
With ActiveSheet
.Cells.ClearContents
.Name = "Master"
End With
r = 1
Cells(r, 1) = "FileName"
Cells(r, 2) = "Size"
Cells(r, 3) = "Date/Time"
f = Dir(Directory & "*.xls")
Do While f <> ""
r = r + 1
Cells(r, 1) = f
Cells(r, 2) = FileLen(Directory & f) & " kb"
Cells(r, 3) = FileDateTime(Directory & f)
f = Dir()
Loop
Call AdjustColumns
End Sub
Sub AdjustColumns()
For Each wsSheet In Application.Worksheets
wsSheet.UsedRange.Cells.Columns.AutoFit
Next wsSheet
End Sub
Sub AddSheetsBasedOnDataYear()
Call ListFiles
z = Cells(Rows.Count, 1).End(xlUp).Row
For e = 2 To z
If ActiveSheet.Cells(e, 1) <> ActiveWorkbook.Name Then
n = InStr(Sheets("Master").Cells(e, 1), "C") + 2
m = Mid(Sheets("Master").Cells(e, 1), n, 4)
Sheets.Add.Name = m
ActiveSheet.Move After:=Worksheets(Worksheets.Count)
Set wbDesBook = ActiveWorkbook
Set wbSourceBook = Workbooks.Open(Directory & Sheets("Master").Cells(e, 1))
Set rSourceRange = wbSourceBook.Worksheets("SourceWb").Range("SourceRng")
MsgBox wbDesBook.ActiveSheet.Name & " data will now be extracted"
With rSourceRange
Set rDesRange = wbDesBook.ActiveSheet.Cells(1, 1). _
Resize(.Rows.Count, .Columns.Count)
End With
rDesRange.Value = rSourceRange.Value
wbSourceBook.Close SaveChanges:=False
End If
Next e
Call AdjustColumns
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Bookmarks