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

XL 2016 Créer onglet en fonction filtre rapport TCD

Nikless

XLDnaute Junior
Bonjour le forum,
J'utilise un fichier dans lequel je centralise l'ensemble des refacturations pour les filiales d'un périmètre dans un tableau, onglet "Source"
J'ai un TCD qui me permet de mettre en forme ces refacturations avec des regroupements en filtrant sur le pays.
Je souhaite adresser à chaque pays une fichier avec le montant de ses refacturations dans un TCD avec les données source uniquement de ce pays.

Je suis en mesure d'effectuer une boucle sur la base d'un critère dans une table mais je ne parviens pas à changer le filtre du rapport, ni de redéfinir la source des données.

Merci de votre aide,

Nikless
 

Pièces jointes

  • Template_TCD.xlsm
    86.8 KB · Affichages: 24

chris

XLDnaute Barbatruc
Bonjour

Le TCD permet de
  • démultiplier automatiquement un TCD dont le pays est en champ de page (afficher les pages de filtre du rapport)
  • extraire les données sources par un double clic sur le total du TCD.
En VBA cela donne
Code:
Sub Pays()
Dim ws As Worksheet, Total As Range, Pays As String, TCDSource As String

    With Worksheets("TCD").PivotTables(1)
        .PivotFields("Country").ClearAllFilters
        .PivotFields("Country").CurrentPage = "(All)"
        .ShowPages PageField:="Country"
    End With
    For Each ws In ActiveWorkbook.Worksheets
        If ws.Name <> "TCD" And ws.PivotTables.Count > 0 Then
            Set Total = ws.Cells(ws.PivotTables(1).TableRange2.Rows.Count, ws.PivotTables(1).TableRange2.Columns.Count)
            Pays = ws.Cells(1, 2).Value
            Total.ShowDetail = True
            ActiveSheet.Name = Pays & "_Data"
            TCDSource = Replace(Pays, " ", "_")
            ActiveSheet.ListObjects(1).Name = TCDSource
            ws.PivotTables(1).ChangePivotCache _
                ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
                TCDSource)
        End If
    Next ws
End Sub


Reste à exporter les couples d'onglets pays soit dans la boucle soit à posteriori.
 
Dernière édition:

chris

XLDnaute Barbatruc
Bonjour à tous

Oups j'avais oublié dans mon code de changer la source de chaque TCD.
C'est corrigé avec au passage le renommage du tableau source de ces TCD.
(Code mis à jour dans mon précédent post)
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…