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

[Resolu] TCD - Ajouter un filtre multiple

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:

Zohnya

XLDnaute Nouveau
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" ?
 

gosselien

XLDnaute Barbatruc
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)

 

Discussions similaires

Réponses
0
Affichages
157
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…