[RESOLU]VBA - initialisation filtre sur TCD super longue

FredFirmin

XLDnaute Nouveau
Bonjour à tous,

Voici ma question :

Je doit mettre à jour le filtre d'un TCD à partir d'une liste de valeur renseignée dans une cellule. Le filtre de mon TCD contient environ 200 à 300 de valeurs.
Afin de n'afficher que les valeurs qui m'intéressent, je décoche tous les valeurs par le code suivant ;

With ActiveSheet.PivotTables("PivotTable2").PivotFields("Vendor")
For Each monPivIt In .PivotItems
monPivIt.Visible = False
Next
On Error Resume Next
End With


Le code marche bien mais prend énormément de temps.

Je ne suis pas expert en VBA et peut-être que ce petit bout de code n'est pas optimisé.

Merci par avance pour votre retour.

Frédéric FIRMIN
 
Dernière édition:

FredFirmin

XLDnaute Nouveau
Re : VBA - initialisation filtre sur TCD super longue

Bonjour et Binevenue

ActiveSheet.PivotTables("PivotTable2").PivotFields("Vendor").ClearManualFilter

décoche tout

Bonjour Chris,

Merci pour ta réponse, mais il semblerait que ce soit l'inverse.

PivotField.ClearManualFilter, méthode (Excel)

Offre un moyen facile pour définir la propriété Visible sur True pour tous les éléments d'un champ dans les tableaux croisés dynamiques et pour vider les collections HiddenItemsList et les collections VisibleItemsList dans les tableaux croisés dynamiques OLAP.
 

chris

XLDnaute Barbatruc
Re : VBA - initialisation filtre sur TCD super longue

Re

Oups j'avais lu trop vite !

Néanmoins je conseille de tout remettre en visible avant de masquer car en cas d'évolution de la source du TCD on peut avoir des surprises...

Essaye de mettre l'affichage écran off et le calcul en manuel au début de la macro, puis de rétablir en fin : en général cela accélère ces traitements.
 

FredFirmin

XLDnaute Nouveau
Re : VBA - initialisation filtre sur TCD super longue

Re
Essaye de mettre l'affichage écran off et le calcul en manuel au début de la macro, puis de rétablir en fin : en général cela accélère ces traitements.

Chris,

Merci pour ce complément. Cela va beaucoup plus vite, il est vrai.

J'ai mis ces lignes de code dans la macro :

Application.Calculation = xlManual
Application.EnableEvents = False
ScreenUpdating = False

Néamoins, il semblerait que le TCD soit quand même mis à jour au fur et à mesure du décochage des valeurs du filtre. J'ai loupé quellque chose encore ?
 

Discussions similaires

Réponses
11
Affichages
903

Statistiques des forums

Discussions
311 725
Messages
2 081 948
Membres
101 850
dernier inscrit
Danigra