Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Pivot table - unwanted lines
I recorded a pivot table and have code like this in it. However, each day I
run it against a different file and the Pivot Items are different. 1st day With ActiveSheet.PivotTables("PivotTable5").PivotFields ("Problem") .PivotItems("Upgrade").Visible = False .PivotItems("Slow Speed").Visible = False .PivotItems("Cannot Create Customer Account").Visible = False 2nd day With ActiveSheet.PivotTables("PivotTable5").PivotFields ("Problem") .PivotItems("Out of Service").Visible = False .PivotItems("Slow Speed").Visible = False .PivotItems("Account Disabled").Visible = False The macro aborts any time an entry is not there (Upgrade) and again when there is a new entry (Out of Service) So how do you create a pivot table that will run no matter what the data is? This is the lines after the above. End With With ActiveSheet.PivotTables("PivotTable5").PivotFields ("Problem") .PivotItems("(blank)").Visible = False End With With ActiveSheet.PivotTables("PivotTable5").PivotFields ("Cluster") .Orientation = xlRowField .Position = 2 End With With ActiveSheet.PivotTables("PivotTable5").PivotFields ("Diagnosis") .Orientation = xlRowField .Position = 3 End With ActiveSheet.PivotTables("PivotTable5").PivotFields ("Cluster").Orientation = _ xlHidden Any help would be appreciated. Thanks, Ron |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Pivot table - unwanted lines
Ron,
The trouble with recording macros is that the results can be far more literal than you want them to be. I find it very useful as a tool to generate approximately what I want. I then spend time generalising them. the subrouting below will not do what you want either, but it may give yoiu the clues necessary to complete the job for yourself. Sub Pivot_table_example() Dim thisPT As Integer Dim thisPF As Integer Dim thisPI As Integer For thisPT = 1 To ActiveSheet.PivotTables.Count Debug.Print ActiveSheet.PivotTables(thisPT) For thisPF = 1 To ActiveSheet.PivotTables(thisPT).PivotFields.Count Debug.Print " " & ActiveSheet.PivotTables(thisPT).PivotFields(thisPF ) For thisPI = 1 To ActiveSheet.PivotTables(thisPT).PivotFields(thisPF ).PivotItems.Count Debug.Print " " & ActiveSheet.PivotTables(thisPT).PivotFields(thisPF ).PivotItems(thisPI) Select Case ActiveSheet.PivotTables(thisPT).PivotFields(thisPF ).PivotItems(thisPI) Case "Upgrade", "Slow Speed" 'and any of the others you set invisible ActiveSheet.PivotTables(thisPT).PivotFields(thisPF ).PivotItems(thisPI).Visible = False Case Else 'whatever you do with those that are visible End Select Next thisPI Next thisPF Next thisPT End Sub "Ron" wrote: I recorded a pivot table and have code like this in it. However, each day I run it against a different file and the Pivot Items are different. 1st day With ActiveSheet.PivotTables("PivotTable5").PivotFields ("Problem") .PivotItems("Upgrade").Visible = False .PivotItems("Slow Speed").Visible = False .PivotItems("Cannot Create Customer Account").Visible = False 2nd day With ActiveSheet.PivotTables("PivotTable5").PivotFields ("Problem") .PivotItems("Out of Service").Visible = False .PivotItems("Slow Speed").Visible = False .PivotItems("Account Disabled").Visible = False The macro aborts any time an entry is not there (Upgrade) and again when there is a new entry (Out of Service) So how do you create a pivot table that will run no matter what the data is? This is the lines after the above. End With With ActiveSheet.PivotTables("PivotTable5").PivotFields ("Problem") .PivotItems("(blank)").Visible = False End With With ActiveSheet.PivotTables("PivotTable5").PivotFields ("Cluster") .Orientation = xlRowField .Position = 2 End With With ActiveSheet.PivotTables("PivotTable5").PivotFields ("Diagnosis") .Orientation = xlRowField .Position = 3 End With ActiveSheet.PivotTables("PivotTable5").PivotFields ("Cluster").Orientation = _ xlHidden Any help would be appreciated. Thanks, Ron |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Pivot table - unwanted lines
I appreciate that Lionel. I'm playing with it to see if I can get it to do
what I need. Thanks for your input. Ron "Lionel H" wrote: Ron, The trouble with recording macros is that the results can be far more literal than you want them to be. I find it very useful as a tool to generate approximately what I want. I then spend time generalising them. the subrouting below will not do what you want either, but it may give yoiu the clues necessary to complete the job for yourself. Sub Pivot_table_example() Dim thisPT As Integer Dim thisPF As Integer Dim thisPI As Integer For thisPT = 1 To ActiveSheet.PivotTables.Count Debug.Print ActiveSheet.PivotTables(thisPT) For thisPF = 1 To ActiveSheet.PivotTables(thisPT).PivotFields.Count Debug.Print " " & ActiveSheet.PivotTables(thisPT).PivotFields(thisPF ) For thisPI = 1 To ActiveSheet.PivotTables(thisPT).PivotFields(thisPF ).PivotItems.Count Debug.Print " " & ActiveSheet.PivotTables(thisPT).PivotFields(thisPF ).PivotItems(thisPI) Select Case ActiveSheet.PivotTables(thisPT).PivotFields(thisPF ).PivotItems(thisPI) Case "Upgrade", "Slow Speed" 'and any of the others you set invisible ActiveSheet.PivotTables(thisPT).PivotFields(thisPF ).PivotItems(thisPI).Visible = False Case Else 'whatever you do with those that are visible End Select Next thisPI Next thisPF Next thisPT End Sub "Ron" wrote: I recorded a pivot table and have code like this in it. However, each day I run it against a different file and the Pivot Items are different. 1st day With ActiveSheet.PivotTables("PivotTable5").PivotFields ("Problem") .PivotItems("Upgrade").Visible = False .PivotItems("Slow Speed").Visible = False .PivotItems("Cannot Create Customer Account").Visible = False 2nd day With ActiveSheet.PivotTables("PivotTable5").PivotFields ("Problem") .PivotItems("Out of Service").Visible = False .PivotItems("Slow Speed").Visible = False .PivotItems("Account Disabled").Visible = False The macro aborts any time an entry is not there (Upgrade) and again when there is a new entry (Out of Service) So how do you create a pivot table that will run no matter what the data is? This is the lines after the above. End With With ActiveSheet.PivotTables("PivotTable5").PivotFields ("Problem") .PivotItems("(blank)").Visible = False End With With ActiveSheet.PivotTables("PivotTable5").PivotFields ("Cluster") .Orientation = xlRowField .Position = 2 End With With ActiveSheet.PivotTables("PivotTable5").PivotFields ("Diagnosis") .Orientation = xlRowField .Position = 3 End With ActiveSheet.PivotTables("PivotTable5").PivotFields ("Cluster").Orientation = _ xlHidden Any help would be appreciated. Thanks, Ron |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Filter lines with Pivot table and non pivot table columns | Charts and Charting in Excel | |||
suppress unwanted rows in a Pivot Table using VBA, dropdowns & Vlo | Excel Programming | |||
A calculated item gives unwanted changes to my pivot table | Excel Discussion (Misc queries) | |||
How to remove unwanted green horizontal lines in Word Table? | Excel Worksheet Functions | |||
Unwanted Total in Pivot Table row field | Excel Programming |