Your code works very well so far. You know where the top of the data range is, always starts at row11. If you add a variable to spot the bottom of the data on each worksheet, it makes copying to another sheet very simple. Here's a macro:
Sub ConsolidatedReport()
'Copy selected data range from all sheets except sheets named MAIN,
'REPORT and SCORECARD - JBeaucaire (8/8/2009)
Dim ws As Worksheet, LR As Long
'Erase old report
Sheets("Report").Range("B11:K" & Rows.Count).Clear
'Consolidate new report
For Each ws In Worksheets
Select Case ws.Name
Case "Main", "Report", "Scorecard"
'do nothing
Case Else
ws.Activate
Range("B10").AutoFilter Field:=1
LR = Range("B" & Rows.Count).End(xlUp).Row
Range("B10").AutoFilter Field:=1, Criteria1:=Range("C1").Value
Range("B11:K" & LR).SpecialCells(xlCellTypeVisible).Copy _
Sheets("Report").Range("B" & Rows.Count).End(xlUp).Offset(1, 0)
End Select
Next ws
Sheets("Report").Activate
End Sub
I've installed in your sheet and added a new button to run it. Pick a Process then click the new button.
Bookmarks