VBA probleme sur les Filtres du rapport du TCD

  • Initiateur de la discussion Initiateur de la discussion nivolo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

nivolo

XLDnaute Nouveau
Bonjour à tous,

Je dois faire une macro qui doit selectionner entre 1 à 4 éléments de filtre du rapport dans un TCD.

Seulement l'enregistrement automatique me propose ce code :

ActiveSheet.PivotTables("TEXTILE").PivotFields("MARQUES").CurrentPage = "(All)"
With ActiveSheet.PivotTables("2009").PivotFields("MARQUES")
.PivotItems("Elément 1").Visible = True
.PivotItems("Elément 2").Visible = True
.PivotItems("Elément 3").Visible = True
.PivotItems("Elément 4").Visible = True
...


True les sélectionnent et false les cachent.

Seulement j'en ai une centaine d'éléments.

Comment je peux les regrouper en disant en code :
Je les désélectionne tous sauf élément2 et 15 par exemple.😕😕😕

MErci de votre.

Nivolo
 
Re : VBA probleme sur les Filtres du rapport du TCD

Bonjour,

Bonjour Michel 😀

Ci dessous 2 codes, l'un pour supprimer les anciens items du TCD (on ne les voit plus, mais ils nous rendent la vie bien difficile...)

Pour tester, déroule le 2ème code sans dérouler le 1er, et ensuite, déroule le 1er, puis le 2ème

PS, c'est possible qu'il n'y ait pas d'erreur chez toi, mais chez moi, il y avait un item nommé "LORENZO", qu'on ne voit nulle part....

Nettoyage :

Code:
Sub supprime_anciens_items()
'Excel 2002 et ultérieurs
Dim pvt As PivotTable
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
  For Each pvt In sh.PivotTables
    pvt.PivotCache.MissingItemsLimit = xlMissingItemsNone
    pvt.PivotCache.Refresh
  Next pvt
Next sh
End Sub

Pour masquer "CLEMENTINE" :

Code:
Sub Macro4()
Dim PvtI As PivotItem
Application.ScreenUpdating = False
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Marque")
    .CurrentPage = "(All)"
    For Each PvtI In .PivotItems
        PvtI.Visible = True
        PvtI.Visible = IIf(PvtI.Name <> "CLEMENTINE", True, False)
    Next PvtI
End With
End Sub

Tu remarqueras que je les rends tous visibles dans le code, ceci afin d'éviter un masquage de tous les champs...

Bonne journée
 
Re : VBA probleme sur les Filtres du rapport du TCD

Re , Bonjour BHBH

Ah merci Hubert pour ce super code, comme je les aime 🙂.

Sinon avec Henry qui ne prend jamais de vacances 😉, cela donnerait ceci et un Bis, sur l'idée de ton code 😱.

Code:
Sub TCD_Selection_moins_1_Item()
'Henry
      ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Marque"). _
        ClearAllFilters
      ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Marque"). _
        CurrentPage = "(All)"
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Marque")
        .PivotItems("CLEMENTINE").Visible = False
    End With
    'ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotCache.Refresh
End Sub
Sub TCD_Selection_Moins_1_Item_Bis()
'MJ avec l'aval de Henry
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Marque")
    .ClearAllFilters
    .CurrentPage = "(All)"
    .PivotItems("CLEMENTINE").Visible = False
End With
End Sub
 
Re : VBA probleme sur les Filtres du rapport du TCD

Bonjour,

Puisque tu es sous 2010, tu peux aussi insérer un 'Slicer', comme dans le fichier joint.
Pour le faire: outils de TCD/Groupe Trier flitrer/bouton: insérer un segment.

Sélectionner Marque comme connexion de segment.

En sélectionnant l'objet sur la feuille un nouvelle onglet apparaît: Outils segment/Option Là tu peux modifier le nombre de colonne, la largeur etc...de l'objet.

Pour sélectionner plusieurs marque utiliser les touchers Shift ou CTLR ou cliquer sur le premier élément et glisser la souris en maintenant le bouton sur les éléments adjacents.

A+

Bonjour Michel😀, Bh²😀
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour