Construction d'un graphique croisé dynamique

RENAUDER

Nous a quitté
Repose en paix
Bonjour,

Je souhaite via VBA, créer un graphique du'un TCD.
J'ai utilisé l'enregistreur de macros et ensuite j'ai remplacé les plages par des noms
Sourcedata:= contient une plage nommée BDA
TableDestination:= fait référence à la feuille Graphe

Par contre je bute sur le paramètre TableName:=

TableName est le Nom du nouveau rapport de tableau croisé dynamique et d'après l'aide il est facultatif.

Pour TableName:= je voudrais mettre un nom générique comme j'ai fait en Excel 2003
car à chaque lancement de la construction , TableName:="Tableau croisé dynamique1" puis TableName:=devient "Tableau croisé dynamique2", etc ...

Je veux définir un nom une fois pour toute pour TableName mais quoi que je mette, j'ai erreur 5

Code Excel 2007
Code:
 Sheets("Feuil1").Select
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="BDA" _
        , Version:=xlPivotTableVersion10).CreatePivotTable TableDestination:= _
        "Graphe!L1C1", TableName:="Tableau croisé dynamique9", DefaultVersion:= _
        xlPivotTableVersion10

Exemple en Excel 2003

J'ai donné un nom à TableName:="TCD"

Code:
 ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="BD"). _
            CreatePivotTable TableDestination:="TCD!R2C1", TableName:= _
                             "TCD", DefaultVersion:=xlPivotTableVersion10
    ActiveSheet.PivotTables("TCD").AddFields RowFields:= _
                                             Array("Opérateur", "Péage"), ColumnFields:="Date jour"
    ActiveSheet.PivotTables("TCD").PivotFields("Qté globale") _
            .Orientation = xlDataField
 

RENAUDER

Nous a quitté
Repose en paix
Re : Construction d'un graphique croisé dynamique

Bonjour,
Tu sélectionnes ta plage de données et tu fais :
Insertion, Graphique croisé dynamique
 

Pièces jointes

  • GCD.JPG
    GCD.JPG
    39.3 KB · Affichages: 184
  • GCD.JPG
    GCD.JPG
    39.3 KB · Affichages: 219
  • GCD.JPG
    GCD.JPG
    39.3 KB · Affichages: 223

MichelXld

XLDnaute Barbatruc
Re : Construction d'un graphique croisé dynamique

bonsoir


quand tu fais Insertion, Graphique croisé dynamique, le TCD et le graphe sont gérés simultanément.

non, pour moi il faut d'abord créer le TCD et ensuite ajouter le graphique:


en reprenant mon exemple précédent:

Code:
'Testé sous Excel 2007
Dim RefPlage As String, Cible As String
Dim Ch As Chart
 
   
'Crée la référence des sources style: Feuil1!R1C1:R6C2
RefPlage = Range("A1:C7").Address(ReferenceStyle:=xlR1C1, _
    RowAbsolute:=True, ColumnAbsolute:=True)
Cible = "Feuil2!" & RefPlage

Sheets.Add
'Crée le TCD dans la cellule A1 de la feuille "Synthese"
ActiveWorkbook.PivotCaches.Add(SourceType:=xlConsolidation, _
    SourceData:=Cible).CreatePivotTable _
    TableDestination:=ActiveSheet.Range("A1"), _
    TableName:="Tableau croisé dynamique1"
 
       
ActiveSheet.Shapes.AddChart.Select
With ActiveChart
    .SetSourceData Source:=ActiveSheet.Range("A1")
    .ChartType = xlColumnClustered
End With



Bonne soirée
MichelXld
 

RENAUDER

Nous a quitté
Repose en paix
Re : Construction d'un graphique croisé dynamique

Bonjour,
Dans mon cas je parle d'une opération manuelle et non pas en VBA
Voici le menu que j'ai chez moi lorsque je suis sur ma feuille de données et que je fais Insertion, Graphique croisé dynamique
 

Pièces jointes

  • GCD.JPG
    GCD.JPG
    39.3 KB · Affichages: 121
  • GCD.JPG
    GCD.JPG
    39.3 KB · Affichages: 137
  • GCD.JPG
    GCD.JPG
    39.3 KB · Affichages: 141
Dernière édition:

CB60

XLDnaute Barbatruc
Re : Construction d'un graphique croisé dynamique

Bonsoir
Regarde si cela peut te faire avancer?
Code:
Sub graphdyna()
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "PourTCD", Version:=xlPivotTableVersion12).CreatePivotTable TableDestination:=""
    ActiveWorkbook.Names.Add Name:="choix", RefersTo:=Range("a1")
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.SetSourceData Source:=Range("choix")
    ActiveWorkbook.ShowPivotChartActiveFields = True
    ActiveChart.ChartType = xlColumnClustered
    With ActiveSheet.PivotTables(1)
        .PivotFields(1).Orientation = xlRowField
        .PivotFields(1).Position = 1
        .AddDataField .PivotFields(2), "Col B", xlSum
        .AddDataField .PivotFields(3), "Col C", xlSum
        .AddDataField .PivotFields(4), "Col D", xlSum
    End With
    ActiveSheet.PivotTables(1).Name = "TCD"
    ActiveWorkbook.ShowPivotChartActiveFields = False
    ActiveWorkbook.ShowPivotTableFieldList = False
End Sub
 

Discussions similaires

Réponses
1
Affichages
516

Statistiques des forums

Discussions
312 198
Messages
2 086 126
Membres
103 127
dernier inscrit
willwebdesign