Put this macro in the SheetModule for SUMMARY:
Option Explicit
Private Sub Worksheet_activate()
Application.EnableEvents = False
Call AssembleSummary
Application.EnableEvents = True
End Sub
Put this macro into a normal module:
Option Explicit
Sub AssembleSummary()
Dim ws As Worksheet, NR As Long
Application.ScreenUpdating = False
Sheets("Summary").Activate
Range("A4:AM" & Rows.Count).ClearContents
NR = 4
For Each ws In Worksheets
If LCase(ws.Name) <> "summary" Then
ws.Range("B3:B7,B9:B12,B14:B15,B17:B20,B22,B24:B27,B31:B33").Copy
Range("A" & NR).PasteSpecial Paste:=xlPasteValues, Transpose:=True
ws.Range("B34,B36:B37,B41:B43,B46:B50,B53:B55").Copy
Range("Z" & NR).PasteSpecial Paste:=xlPasteValues, Transpose:=True
NR = NR + 1
End If
Next ws
Range("A1").Select
Application.ScreenUpdating = True
End Sub
If you want to add a Forms button to the sheet, you can, then you can attach the macro to it. But the _activate macro given above will cause the SUMMARY sheet to reassert with all the data from the other sheets every time you select the sheet.
In Excel 2007, this will have to be a .xlsm file. (sample file attached)
Bookmarks