CurrentPage d'unTBC

Bonjour,

J'aimerais appliquer un filtre qui prendras la valeur d'une variable, mais j'ai une erreur 1004 lors de l'exécution, à la ligne CurrentPage:

Erreur d'exécution '1004':

Impossible de définir la propriété CurrentPage de la dasse PivotField.

Je n'arrive pas à contourner le problème, existe-t-il une autre méthode que .CurrentPage ?

Voici mon code vba.

J'ai joint le fichier. Merci d'avance

Sub filtre8()
testvaleur = "0139-071 01VS"
Sheets("Feuil2").Activate

With ActiveSheet.PivotTables("TCD3").PivotFields("Article + révision")
.ClearAllFilters
.CurrentPage = testvaleur
End With

End Sub

Bonjour,

Essayez ceci:

Sub filtre8()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    testvaleur = "0549-003 01VS"
    Sheets("Feuil2").Activate
    NbArticles = Application.WorksheetFunction.CountIf(Range("E:E"), "<>") - 1
    With ActiveSheet.PivotTables("TCD3").PivotFields("Article + révision")
      .ClearAllFilters
    End With
    With ActiveSheet.PivotTables("TCD3").PivotFields("Article + révision")
        On Error Resume Next
        For i = 1 To NbArticles
            If ActiveSheet.PivotTables("TCD3").PivotFields("Article + révision").PivotItems(i).Value <> testvaleur Then
                ActiveSheet.PivotTables("TCD3").PivotFields("Article + révision").PivotItems(i).Visible = False
            Else
                ActiveSheet.PivotTables("TCD3").PivotFields("Article + révision").PivotItems(testvaleur).Visible = True
            End If
        Next i
        On Error GoTo 0
    End With
    Application.Calculation = xlCalculationAutomatic
End Sub

Cdlt

Bonjour

J'ai l'impression que tu connais mal les TCD

Un TCD sans calcul n'est qu'un pseudo TCD

CurrentPage correspond à un champ placé en zone de Filtres (anciennement appelé Page dans la traduction française) dans la structure : tu n'as pas de champ dans cette zone.

C'est quoi concrètement l'objectif de ce pseudo TCD ?

Un segment sur le tableau source ne suffirait-il pas ?

Bonjour,

Merci à Arturo pour le code qui contourne le problème avec PivoItems. Je l'avais testé en enregistrant une macro. Le problème est que mon tableau complet fait en fait plus de 3000 lignes et que je voulais éviter une telle boucle.

Pour répondre à Chris, La méthode CurrentPage, je l'ai vue dans un YouTube lorsque je cherchais à créer ce code "Comment Piloter un TCD avec un code Macro (Méthode n°2)". Je ne vois pas ce que je fais de différent par rapport à sa demo?

Le TBC prends des valeurs d'un grand tableau (mise à jour par requête avec connexion à une base) qui a beaucoup de lignes et de colonnes. J'aurais du préciser que j'ai simplifié le fichier, et qu'il n'a plus beaucoup de sens, tel que présenté ici. Mon code ira chercher les valeurs filtrées du TCD pour les copier dans une autre feuille. Ce sera plus simple de les sélectionner et de les copier, et elles sont directement dans la bonne mise en page.

Mais effectivement je vois qu'avec un tableau on peu utiliser : Range("Articles").AutoFilter Field:=6, Criteria1:=testvaleur, donc cela reste une voie possible, mais un peu plus compliquée.

RE

Su la vidéo il y a bien, un champ en zone de filtres

image

Si ta requête est faite avec PowerQuery il est très facile de filtrer en passant la valeur en paramètre avec 2 lignes de code... Sinon précise davantage le contexte

Avec un tableau structuré comme déjà dit un simple segment suffit

Merci Chris pour ta réponse

Comme je ne maîtrise pas les requêtes, je vais plutôt me concentré sur le tableau de base

Rechercher des sujets similaires à "currentpage untbc"