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

Statistiques des forums

Discussions
312 203
Messages
2 086 181
Membres
103 152
dernier inscrit
Karibu