We help IT Professionals succeed at work.

VBA Pivot Field Filter Error

292 Views
Last Modified: 2017-04-08
Hi there, I have written a VBA procedure (well multiple as its very large code) which basically re-creates a large number of Pivot tables from the source data sheet so as the source data changes, I delete & rebuild the Pivots.  All of this is working fine.  

However, in the source data, there is a column called "Region" and there are 5 main regions consisting of CEE, DACH, UK/IE, NL & CENTER.  I have noticed towards the very end of coding, that in some cases, this approach is generating an error and its where the source data for the Pivot, does not actually contain a specific region

For example, if I copy the VBA for the multiple Pivots I created for NL region, I have been setting the region filters in VBA as follows:-

'Add Region Filter
With .PivotFields("Region")
        .PivotItems("CEE").Visible = False
        .PivotItems("DACH").Visible = False
        .PivotItems("UK/IE").Visible = False
        .PivotItems("CENTER").Visible = False
        .PivotItems("(blank)").Visible = False
End With

The above works fine so long as in the source data for the Pivot I am creating, all of the values above are present, if for example, in the Pivot source data, there is no data for "UK/IE", the VBA throws an error, rather than simply skipping over the appropriate line of code.

Is there an easy / quick resolution sticking with the above structure, to get VBA to ignore a filter request if the data does not exist in the source ( I do not really want to re write all of the code - it really is quite massive) ?

Thanks in advance
Dave
Comment
Watch Question

Managing Director/Excel VBA Developer
CERTIFIED EXPERT
Distinguished Expert 2018
Commented:
This problem has been solved!
(Unlock this solution with a 7-day Free Trial)
UNLOCK SOLUTION

Author

Commented:
thanks - that seems simple enough :)  - will the "Goto 0" part work ok if this filter logic appears multiple times within a proc?
ShumsManaging Director/Excel VBA Developer
CERTIFIED EXPERT
Distinguished Expert 2018

Commented:
You need to start with Error Resume Next before every loop and end with On Error Goto 0
Rob HensonFinance Analyst
CERTIFIED EXPERT
Commented:
This problem has been solved!
(Unlock this solution with a 7-day Free Trial)
UNLOCK SOLUTION

Author

Commented:
thanks this worked perfectly and I will check the rest of my code and add in Error Resume Next before every loop and end with On Error Goto 0
Rob HensonFinance Analyst
CERTIFIED EXPERT

Commented:
Have you noted my comment.

When you use "On Error Resume Next" to skip the Pivot Filter, the Pivot Table will not change and will still show the data from the previous refresh; ie one of the Regions that does exist in that Pivot.
ShumsManaging Director/Excel VBA Developer
CERTIFIED EXPERT
Distinguished Expert 2018

Commented:
No comment has been added to this question in more than 14 days, so it is now classified as abandoned.

I have recommended this question be closed as follows:
Split: Shums (ID: 42052688) and Rob Henson (ID: 42052688)

If you feel this question should be closed differently, post an objection and a moderator will read all objections and then close it as they feel fit. If no one objects, this question will be closed automatically the way described above.

Gain unlimited access to on-demand training courses with an Experts Exchange subscription.

Get Access
Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Empower Your Career
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE

Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

  • Troubleshooting
  • Research
  • Professional Opinions