Accélérer tableau croisé dynamique filtrage du code VBA

J'ai un tableau croisé dynamique avec un champ de tableau croisé dynamique et contiennent de nombreux éléments.
J'ai le code VBA logique pour décider si le pivot de la valeur doit être visible ou non.
Le problème est excel recalcule tableau croisé dynamique pour chaque champ d'afficher ou de masquer ce qui le rend très lente.
Je voudrais quelque chose où il recalcule une seule fois, après toutes les valeurs sont définies.
J'ai essayé d'utiliser l'Application.Calculation = xlCalculationManual mais cela n'a pas aide.

code vba que j'utilise est quelque chose comme cela

For i = 1 To oPivotField.PivotItems.Count
    If (oPivotField.PivotItems(i).Name = "TestCondition") Then
        oPivotField.PivotItems(i).Visible = True   'Recalulates pivot table
    Else
        oPivotField.PivotItems(i).Visible = False 'Recalulates pivot table
    End If
Next

Je suis à le faire manuellement, en décochez la case "afficher tous" de la boîte et vérifiez de nouveau les champs que je veux visible. Cette cause Excel pour recalculer une fois et ne montrer que le pivot des éléments que je veux visible.
Je voudrais faire la même chose via un code VBA.

J'ai même essayé d'utiliser

Application.ScreenUpdating = False
Application.DisplayAlerts = False

mais n'a pas fonctionné.

OriginalL'auteur Ankit | 2009-04-18