Option Explicit
Sub GetAllSheetsDataToSummary()
' hiker95, 02/08/2014, ME756395
Dim ws As Worksheet
Dim lr As Long, nr As Long, n As Long
Dim cnrng As Range, lprng As Range, pgrng As Range, dsrng As Range, tsrng As Range, derng As Range, qtrng As Range
Application.ScreenUpdating = False
If Not Evaluate("ISREF(Summary!A1)") Then Worksheets.Add().Name = "Summary"
With Sheets("Summary")
.UsedRange.ClearContents
End With
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Summary" Then
With ws
Set cnrng = ws.Rows(1).Find("Cat Number", LookAt:=xlWhole) 'cnrng, Cat Number
Set lprng = ws.Rows(1).Find("List Price", LookAt:=xlWhole) 'lprng, List Price
Set pgrng = ws.Rows(1).Find("PGC", LookAt:=xlWhole) 'pgrng, PGC
Set dsrng = ws.Rows(1).Find("DS", LookAt:=xlWhole) 'dsrng, DS
Set tsrng = ws.Rows(1).Find("TS", LookAt:=xlWhole) 'tsrng, TS
Set derng = ws.Rows(1).Find("Description", LookAt:=xlWhole) 'derng, Description
Set qtrng = ws.Rows(1).Find("Qty", LookAt:=xlWhole) 'qtrng, Qty
If (cnrng Is Nothing) * (lprng Is Nothing) * (pgrng Is Nothing) * (dsrng Is Nothing) _
* (tsrng Is Nothing) * (derng Is Nothing) * (qtrng Is Nothing) Then
MsgBox "One or more of the 7 titles in row 1, in sheet '" & ws.Name & "' NOT found!"
GoTo Continue
ElseIf (Not cnrng Is Nothing) * (Not lprng Is Nothing) * (Not pgrng Is Nothing) * (Not dsrng Is Nothing) _
* (Not tsrng Is Nothing) * (Not derng Is Nothing) * (Not qtrng Is Nothing) Then
n = n + 1
If n = 1 Then
ws.Cells(1, cnrng.Column).Copy Sheets("Summary").Range("A1") 'copy 7 titles to Summary!
ws.Cells(1, lprng.Column).Copy Sheets("Summary").Range("B1")
ws.Cells(1, pgrng.Column).Copy Sheets("Summary").Range("C1")
ws.Cells(1, dsrng.Column).Copy Sheets("Summary").Range("D1")
ws.Cells(1, tsrng.Column).Copy Sheets("Summary").Range("E1")
ws.Cells(1, derng.Column).Copy Sheets("Summary").Range("F1")
ws.Cells(1, qtrng.Column).Copy Sheets("Summary").Range("G1")
End If
nr = Sheets("Summary").Range("A" & Rows.Count).End(xlUp).Offset(1).Row
lr = .Cells(Rows.Count, cnrng.Column).End(xlUp).Row
.Range(.Cells(2, cnrng.Column), .Cells(lr, cnrng.Column)).Copy Sheets("Summary").Range("A" & nr)
.Range(.Cells(2, lprng.Column), .Cells(lr, lprng.Column)).Copy Sheets("Summary").Range("B" & nr)
.Range(.Cells(2, pgrng.Column), .Cells(lr, pgrng.Column)).Copy Sheets("Summary").Range("C" & nr)
.Range(.Cells(2, dsrng.Column), .Cells(lr, dsrng.Column)).Copy Sheets("Summary").Range("D" & nr)
.Range(.Cells(2, tsrng.Column), .Cells(lr, tsrng.Column)).Copy Sheets("Summary").Range("E" & nr)
.Range(.Cells(2, derng.Column), .Cells(lr, derng.Column)).Copy Sheets("Summary").Range("F" & nr)
.Range(.Cells(2, qtrng.Column), .Cells(lr, qtrng.Column)).Copy Sheets("Summary").Range("G" & nr)
End If
End With
End If
Continue:
Next ws
Application.ScreenUpdating = True
With Sheets("Summary")
.Columns.AutoFit
.Activate
End With
End Sub