I need help improving my code below as it is a total mess. The correction is just a stop gap for something much bigger that I am trying to achieve. In short what I want to do is to create a pivot like table, based on report filter in Col D of Raw data
What I would have wanted to do is to automatically create summaries in Bristol or West Brom worksheets based on information from Raw Data. I did a pivot table on this and I will lay out my plan using the pivot example. In West Brom worksheet I want a report like a pivot table where the REPORT FILTER is driven by Col D:D, Row labels from G:G & values from AB,AC,AD,AE,AF,AG & AT. The report should then create a table for each item in the REPORT filter one after the other and thats it. The code in its form is rigid cause the variables in D:D & G:G are always changing. If there is a way please help. Pivot table with dynamic name range is the route I had gone for but the Head of Finance said no,(he's an idiot) so I'm stuffed. I will try to upload the spreadsheet after work as I cannot do it from here cause they blocked online file storage sites.
Sub EntitySummaries()
Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet
Set ws1 = ActiveWorkbook.Sheets("RAW DATA")
Set ws2 = ActiveWorkbook.Sheets("BRISTOL")
Set ws3 = ActiveWorkbook.Sheets("West Brom")
Set BRng1 = ws2.Range("C16:C26,D16:D26,E16:E26,F16:F26,G16:G26,H16:H26")
Set BRng2 = ws2.Range("C32:C75,D32:D75,E32:E75,F32:F75,G32:G75,H32:H75")
Set BRng3 = ws2.Range("C81:C85,D81:D85,E81:E85,F81:F85,G81:G85,H81:H85")
Set BRng4 = ws2.Range("C91:C91,D91:D91,E91:E91,F91:F91,G91:G91,H91:H91")
Set BRng5 = ws2.Range("C97:C97,D97:D97,E97:E97,F97:F97,G97:G97,H97:H97")
Set BRng6 = ws2.Range("I16:I26,I32:I75,I81:I85,I91:I91,I97:I97")
With ws2
BRng1.Formula = "=SUMIF('RAW DATA'!C7,RC2, 'RAW DATA'!C[25])"
BRng2.Formula = "=SUMIF('RAW DATA'!C7,RC2, 'RAW DATA'!C[25])"
BRng3.Formula = "=SUMIF('RAW DATA'!C7,RC2, 'RAW DATA'!C[25])"
BRng4.Formula = "=SUMIF('RAW DATA'!C7,RC2, 'RAW DATA'!C[25])"
BRng5.Formula = "=SUMIF('RAW DATA'!C7,RC2, 'RAW DATA'!C[25])"
BRng6.Formula = "=SUMIF('RAW DATA'!C7,RC2, 'RAW DATA'!C[37])"
ws2.Calculate
Range("C16:I26").Copy
Range("C16:I26").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("C32:I75").Copy
Range("C32:I75").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("C81:I85").Copy
Range("C81:I85").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("C91:I91").Copy
Range("C91:I91").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("C97:I97").Copy
Range("C97:I97").PasteSpecial xlPasteValues
Application.CutCopyMode = False
End With
With ws3
Set WBRng1 = ws3.Range("C16:C16,D16:D16,E16:E16,F16:F16,G16:G16,H16:H16")
Set WBRng2 = ws3.Range("C22:C24,D22:D24,E22:E24,F22:F24,G22:G24,H22:H24")
Set WBRng3 = ws3.Range("C30:C45,D30:D45,E30:E45,F30:F45,G30:G45,H30:H45")
Set WBRng4 = ws3.Range("C51:C57,D51:D57,E51:E57,F51:F57,G51:G57,H51:H57")
Set WBRng5 = ws3.Range("C63:C76,D63:D76,E63:E76,F63:F76,G63:G76,H63:H76")
Set WBRng6 = ws3.Range("C82:C86,D82:D86,E82:E86,F82:F86,G82:G86,H82:H86")
Set WBRng7 = ws3.Range("C92:C103,D92:D103,E92:E103,F92:F103,G92:G103,H92:H103")
Set WBRng8 = ws3.Range("C109:C109,D109:D109,E109:E109,F109:F109,G109:G109,H109:H109")
Set WBRng9 = ws3.Range("C115:C115,D115:D115,E115:E115,F115:F115,G115:G115,H115:H115")
Set WBRng10 = ws3.Range("C121:C121,D121:D121,E121:E121,F121:F121,G121:G121,H121:H121")
Set WBRng11 = ws3.Range("CI16:I16,I22:I24,I30:I45,I51:I57,I63:I76,I82:I86,I92:I103,I109:I10,I115:I115,I121:I121,I97:I97")
WBRng1.Formula = "=SUMIF('RAW DATA'!C7,RC2, 'RAW DATA'!C[25])"
WBRng2.Formula = "=SUMIF('RAW DATA'!C7,RC2, 'RAW DATA'!C[25])"
WBRng3.Formula = "=SUMIF('RAW DATA'!C7,RC2, 'RAW DATA'!C[25])"
WBRng4.Formula = "=SUMIF('RAW DATA'!C7,RC2, 'RAW DATA'!C[25])"
WBRng5.Formula = "=SUMIF('RAW DATA'!C7,RC2, 'RAW DATA'!C[25])"
WBRng6.Formula = "=SUMIF('RAW DATA'!C7,RC2, 'RAW DATA'!C[25])"
WBRng7.Formula = "=SUMIF('RAW DATA'!C7,RC2, 'RAW DATA'!C[25])"
WBRng8.Formula = "=SUMIF('RAW DATA'!C7,RC2, 'RAW DATA'!C[25])"
WBRng9.Formula = "=SUMIF('RAW DATA'!C7,RC2, 'RAW DATA'!C[25])"
WBRng10.Formula = "=SUMIF('RAW DATA'!C7,RC2, 'RAW DATA'!C[25])"
WBRng11.Formula = "=SUMIF('RAW DATA'!C7,RC2, 'RAW DATA'!C[37])"
ws3.Calculate
Range("C16:I16").Copy
Range("C16:I16").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("C22:I24").Copy
Range("C22:I24").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("C30:I45").Copy
Range("C30:I45").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("C51:I57").Copy
Range("C51:I57").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("C63:I76").Copy
Range("C63:I76").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("C82:I86").Copy
Range("C82:I86").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("C92:I103").Copy
Range("C92:I103").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("C109:I109").Copy
Range("C109:I109").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("C115:I115").Copy
Range("C115:I115").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("C121:I121").Copy
Range("C121:I121").PasteSpecial xlPasteValues
Application.CutCopyMode = False
End With
End Sub