Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[Resolu] TCD - Ajouter un filtre multiple

  • Initiateur de la discussion Initiateur de la discussion Zohnya
  • 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 !

Zohnya

XLDnaute Nouveau
Bonjour, j'utilise un TCD pour récupérer des infos concernant des états de machines. J'aimerais qu'on puisse filtrer le TCD selon l'utilisateur ou les utilisateurs. Voici mon code, mais ça ne fonctionne pas.
Auriez-vous une idée sur la façon de procéder ?

VB:
Dim ind As String
Dim objetFiltre As PivotItem
'**************************
'Action des filtres
'***************************

        For j = 1 To 3
        'Selectionner le filtre (on fait 3 tour vue qu'il y a 3 filtres)
        Select Case i
            Case 1
                ind = "Utilisateur"
            Case 2
                ind = "Article"
            Case 3
                ind = "Contexte"
            Case Else
                ind = "0"
        End Select
      
        'Activer le multi-filtre (coche tout par défaut)
        ' "nomTCD" est initialisée plus haut et correspond au nom du TCD
        With ActiveSheet.PivotTables(nomTCD).PivotFields(ind)
            .EnableMultiplePageItems = True
            .CurrentPage = "(All)"
        End With
      
        'Pour chaque "pivotItem" dans la liste, on va les mettre a false sauf s'ils correspondent au filtre
        For Each objetFiltre In ActivSheet.PivotTables(nomTCD).PivotFields(ind).PivotItems
            On Error Resume Next
            With ActivSheet.PivotTables(nomTCD).PivotFields(ind).PivotItems.objet
                If .Name = "8060" Or .Name = "45094" Then
                    .Visible = True
                Else
                    .Visible = False
                End If
            End With
        Next objetFiltre
    Next j

sachant qu'avec ce code j'ai l'erreur :

424 : Objet requis sur la ligne du foreach
 
Dernière édition:
Donc, j'ai remplacé la boucle foreach par une boucle for pour voir si ça changeait quelque chose et, absolument pas.
Si je comprends bien, cette erreur se déclanche parce que il n'y a pas d'éléments dans mon "pivotItems" ?
 
Bonjour,

je ne fais jamais de tcd par vba mais j'ai vu 2 erreurs dans ton code:

For h = 1 To ActivSheet.PivotTables(nomTCD).PivotFields("Utilisateur").PivotItems.Count
With ActivSheet.PivotTables(nomTCD).PivotFields(ind)

🙂
 
- 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

Réponses
7
Affichages
85
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
498
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…