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 SubCdlt
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.
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
