Hello missit,
If I understand this correctly then the attached workbook should do what you want. Check it out and let me know. The macro below has been added to Module7.
Option Explicit
Sub Macro1()
Dim Data As Variant
Dim DstWks As Worksheet
Dim LastRow As Long
Dim n As Long
Dim NextRow As Long
Dim SrcRng As Range
Dim SrcWks As Worksheet
UnProtectall
Set DstWks = ThisWorkbook.Sheets("Billing Temp")
NextRow = DstWks.Cells(Rows.Count, "A").End(xlUp).Row
NextRow = IIf(NextRow < 3, 3, NextRow + 1)
For Each SrcWks In ThisWorkbook.Worksheets
Select Case SrcWks.CodeName
Case "Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5", "Sheet6", "Sheet7"
' Skip these worksheets
Case Else
Set SrcRng = SrcWks.Range("B23:J37")
LastRow = SrcRng.Cells(SrcRng.Rows.Count, SrcRng.Column + 1).End(xlUp).Row
Set SrcRng = SrcRng.Resize(RowSize:=LastRow - SrcRng.Row + 1)
ReDim Data(1 To SrcRng.Rows.Count, 1 To 10)
For n = 1 To SrcRng.Rows.Count
Data(n, 1) = SrcWks.Range("D4")
Data(n, 2) = Empty
Data(n, 3) = SrcRng.Item(n, 2)
Data(n, 4) = SrcRng.Item(n, 3)
Data(n, 5) = Empty
Data(n, 6) = SrcRng.Item(n, 5)
Data(n, 7) = SrcRng.Item(n, 6)
Data(n, 8) = SrcRng.Item(n, 7)
Data(n, 9) = Empty
Data(n, 10) = SrcRng.Item(n, 9)
Next n
DstWks.Cells(NextRow, "A").Resize(n - 1, UBound(Data, 2)).Value = Data
NextRow = NextRow + n - 1
End Select
Next SrcWks
ProtectAll
End Sub
Bookmarks