Macro Application de filtres TCD - VBA
Bonjour à tous,
J'ai écumé quelques forum à la recherche d'une explication mais tous les problèmes étaient bien plus compliqués que le mien et n'ont pas vraiment été en mesure de m'aider.. Je me tourne donc vers vous !
Je cherche, avec une macro VBA, à mettre à jour les filtres présents sur mes TCD (ces derniers sautent pour je ne sais quelle raison, surement une de mes macros.. ^^'). J'ai donc utilisé l'enregistreur de macro mais pas de bol... le code me retourne une " Erreur d'exécution '1004': Erreur définie par l'application ou par l'objet "... (même en exécutant le code enregistré sans rien modifier)..
Le code enregistré est le suivant, la seule modification que je viens y apporter est d'enlever le "Activesheet" et de le remplacer par un bloc "With / End With". Le .ClearAllFilters fonctionne mais pas le .CurrentPage.
ActiveSheet.PivotTables("TCD_In-serv_Reliab_Interne").PivotFields( _
"KPI? (1-oui / 0-non)").ClearAllFilters
ActiveSheet.PivotTables("TCD_In-serv_Reliab_Interne").PivotFields( _
"KPI? (1-oui / 0-non)").CurrentPage = "1"
ActiveSheet.PivotTables("TCD_In-serv_Reliab_Interne").PivotFields("source"). _
ClearAllFilters
ActiveSheet.PivotTables("TCD_In-serv_Reliab_Interne").PivotFields("source"). _
CurrentPage = "Interne"
ActiveSheet.PivotTables("TCD_In-serv_Reliab_Ext BBD").PivotFields( _
"KPI? (1-oui / 0-non)").ClearAllFilters
ActiveSheet.PivotTables("TCD_In-serv_Reliab_Ext BBD").PivotFields( _
"KPI? (1-oui / 0-non)").CurrentPage = "1"
ActiveSheet.PivotTables("TCD_In-serv_Reliab_Ext BBD").PivotFields("source"). _
ClearAllFilters
ActiveSheet.PivotTables("TCD_In-serv_Reliab_Ext BBD").PivotFields("source"). _
CurrentPage = "Externe avionneur (BBD)"
ActiveWorkbook.RefreshAll
Avez vous une idée quant-à l'origine du bug ?
Merci d'avance !
Bien cordialement, Florian M.
Bonjour,
Pour le principe et à adapter, car sans fichier, il est difficile d'intervenir
Cdlt.
Option Explicit
Public Sub DEMO()
Dim ws As Worksheet
Dim pt As PivotTable
Set ws = ActiveSheet
Set pt = ws.PivotTables("TCD_In-serv_Reliab_Interne")
With pt
.ManualUpdate = True
With .PageFields("KPI? (1-oui / 0-non)")
.ClearAllFilters
.CurrentPage = "1"
End With
With .PageFields("source")
.ClearAllFilters
.CurrentPage = "Interne"
End With
.ManualUpdate = False
End With
Set pt = ws.PivotTables("TCD_In-serv_Reliab_Ext BBD")
With pt
.ManualUpdate = True
With .PageFields("KPI? (1-oui / 0-non)")
.ClearAllFilters
.CurrentPage = "1"
End With
With .PageFields("source")
.ClearAllFilters
.CurrentPage = "Externe avionneur (BBD)"
End With
.ManualUpdate = False
End With
Set pt = Nothing: Set ws = Nothing
End Sub