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

Utilsation d'un plage variable dans un TCD

papypog

XLDnaute Occasionnel
Bonjour les pros,

J'ai bien cherché sur le forum et dans tout ce que j'ai trouvé rien ne fonctionne.

Je cherche mois après mois à automatiser la création d'un TCD dont la plage d'application est variable.

Dans l'exemple en PJ j'ai défini comme nom de plage "TCD" mais la macro ne fonctionne pas.


D'avance Merci
 

Pièces jointes

  • tcd.xlsx
    9.1 KB · Affichages: 54
  • tcd.xlsx
    9.1 KB · Affichages: 60
  • tcd.xlsx
    9.1 KB · Affichages: 55

Celeda

XLDnaute Barbatruc
Re : Utilsation d'un plage variable dans un TCD

Bonjour,

Voici un code laissé par Pierrot93 (pour m'aider à réaliser mes tcd ) que j'utilise tout le temps et qui fonctionne bien :

Code:
Sub CREATIONTCD()
Dim ws As Worksheet, pc As PivotCache, Tcd As PivotTable

Set ws = Sheets("TCD")
With ws
    If .PivotTables.Count > 0 Then
        .PivotTables(1).TableRange2.Delete
    End If
    Set pc = ThisWorkbook.PivotCaches.Add(xlDatabase, Sheets("basededonnees").Range("PLAGE"))
    Set Tcd = pc.CreatePivotTable(.Range("A1"))
End With
With Tcd
    .PivotFields("xxx").Orientation = xlRowField
    .PivotFields("yy").Orientation = xlRowField
    .PivotFields("ooo").Orientation = xlRowField
    With .PivotFields("yy")
        .Orientation = xlDataField
        .Function = xlSum
    End With
End With
End Sub

la feuille TCD c'est la feuille dans laquelle le TCD va venir se créer
la feuille basededonnees, c'est la feuille dans laquelle il y a la base
PLAGE est le nom donné dans la base de données - base qui grandira
selon le besoin, soit la formule suivante :
PLAGE= =DECALER('basededonnees'!$A$1;;;NBVAL('basededonnees'!$A:$A);7)
(7) correspond aux 7 colonnes de la base de données.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…