Bonjour,

Je voudrais créer un TCD (tableau croisé dynamique) sur excel en allant chercher les données sur un autre classeur dans le même repertoire.

j'ai donc commencé par écrire le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
 
Sub CreerTCD()
 
Workbooks("cde").PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
    Worksheet("Sheet1").Range("A1").CurrentRegion.Address(, , xlR1C1, True)).CreatePivotTable _
    TableDestination:=ActiveWorkbook.Worksheet(1).Range("E10"), _
    TableName:="Mon TCD"
 
End sub
mais Helas il y a déjà un soucis

Merci de votre aide.

ps : j'ai essayé de me basé sur le code suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
 
 
Sub CreerTCD()
 
'SourceData: Définit la source de données dans le TCD.
'[Feuil1!A1].CurrentRegion.Address(, , xlR1C1, True) permet d'étendre
'automatiquement la sélection de façon à y inclure toute la zone en cours
'à partir de la cellule A1, dans la Feuil1.
 
'TableDestination: Définit la position du TCD (cellule A3 dans la Feuil2).
 
'TableName: Définit le nom du nouveau TCD. ("Mon TCD")
 
ThisWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
    [Feuil1!A1].CurrentRegion.Address(, , xlR1C1, True)).CreatePivotTable _
    TableDestination:="Feuil2!R3C1", _
    TableName:="Mon TCD"
 
 
'Mise en forme:
With Feuil2.PivotTables("Mon TCD")
    'Ajoute un champ de lignes nommé "Ville".
    'Le nom du champ "Ville" doit préalablement exister comme entête de la
    'source de données.
    .AddFields RowFields:="Ville"
    'Définit l'orientation du champ nommé "CA" en tant que Donnée.
    'le nom du champ "CA" doit préalablement exister comme entête
    'de la source de données.
    .PivotFields("CA").Orientation = xlDataField
End With
 
End Sub