1) You'll need to do some work on the labels you've used in row 11 on each sheet, including the Consolidate sheet. They need to be consistent. Either use Qty or Nr. Required, not both.
2) You don't have to grab every column, if you'd like to consolidate less information, only list the column labels you want to see collected from each sheet on the Consolidate row 11.
3) Then run this macro, it will go sheet by sheet looking for just the columns you've asked for on Consolidate and bring over just that info.
Sub ConsolidateReport()
'Jerry Beaucaire 6/12/2010
'Collect data from all worksheets into custom consolidated sheet
Dim LastRow As Long
Dim NextRow As Long
Dim ws As Worksheet
Dim wsCons As Worksheet
Dim ColARR As Range
Dim Clm As Range
Dim colFIND As Range
'Application.ScreenUpdating = False
Set wsCons = Sheets("Consolidate")
wsCons.Range("A12:A" & wsCons.Rows.Count).EntireRow.Clear
Set ColARR = wsCons.Range("A11", wsCons.Cells(11, wsCons.Columns.Count).End(xlToLeft))
On Error Resume Next
For Each ws In Worksheets
If ws.Name <> wsCons.Name Then
LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row
NextRow = wsCons.Range("A" & Rows.Count).End(xlUp).Row + 1
For Each Clm In ColARR
If Clm.Value <> "" Then
Set colFIND = ws.Rows("11:11").Find(What:=Left(Clm, 4), _
After:=ws.Cells(11, ws.Columns.Count), _
LookIn:=xlValues, _
LookAt:=xlPart, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)
If Not colFIND Is Nothing Then
ws.Range(ws.Cells(12, colFIND.Column), _
ws.Cells(LastRow, colFIND.Column)).Copy _
wsCons.Cells(NextRow, Clm.Column)
Set colFIND = Nothing
End If
End If
Next Clm
End If
Next ws
Set ColARR = Nothing
Application.ScreenUpdating = True
End Sub
NOTE: on the attached sheet I have not corrected the labels, you still need to go through all those.
Bookmarks