Fast way to hide all pivot items in VBA?

A

Air_Cooled_Nut

Is there a faster way to hide the pivot items in a pivot field than
using a FOR EACH...NEXT statement? It takes roughly 1 second per pivot
item to change it's visibility.

I'm using the following code:

Code:
--------------------
For Each pi In ActiveSheet.PivotTables("PivotTable1").PivotFields("BILL_TO_CUST_NAME").PivotItems
pi.Visible = False
Next
--------------------


_The_pivot_field_has_a_couple_hundred_items_in_it_ and only 5 need to
be visible; the rest need to be hidden. I'm using code to filter the
table several ways and save each result for another report. The
original report is automatically created by IT and they said that's the
way the report is going to stay.

Suggestions?
 
T

Tim Williams

application.screenupdating=false
application.calculation=xlmanual
'do your stuff
application.screenupdating=true
application.calculation=xlautomatic ' (check these constants!)

You should consider adding an error handler to ensure the settings are
restored if your code could raise an error.

Tim


--
Tim Williams
Palo Alto, CA


"Air_Cooled_Nut"
 
A

Air_Cooled_Nut

Thanks Tim. I did turn off screen updating but didn't even think abou
automatic calculations. However, adding that really didn't help much.
I did a count on the pivot items in the pivot field and it was 7999!
Talk about frickin' stupid :eek
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top