Création TCD erreur 1004 "Le nom du champ de tcd n'est pas valide"

Résolu
Baptiste_xls Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous,

Dans la création automatique d'un TCD sous VBA je rencontre une erreur.
Dans le code ci-dessous je crée un TCD vide :
Sub PivotTable()
Dim pvtable As PivotTable
Dim pvcache As PivotCache
Dim pvrange As Range
Dim pvsheet As Worksheet
Dim pdsheet As Worksheet
Dim plr As Long
Dim plc As Long

On Error Resume Next
Application.DisplayAlerts = False
Application.ScreenUpdating = False

Worksheets("pvsheet").Delete
Worksheets.Add After:=ActiveSheet

ActiveSheet.Name = "pvsheet"

On Error GoTo 0

Set pvsheet = Worksheets("pvsheet")
Set pdsheet = Worksheets("pdsheet")

plr = pdsheet.Cells(Rows.Count, 1).End(xlUp).Row
plc = pdsheet.Cells(1, Columns.Count).End(xlToLeft).Column

Set pvrange = pdsheet.Cells(1, 3).Resize(plr, plc)

Set pvcache = ActiveWorkbook.PivotCaches.Create(xlDatabase, SourceData:=pvrange)

Set pvtable = pvcache.CreatePivotTable(TableDestination:=pvsheet.Cells(1, 1), TableName:="Nat10")

End Sub


Tout marche bien jusqu'à la dernière ligne en gras. Je rencontre une erreur qui me dit :
"Le nom du champ de tableau croisé dynamique n'est pas valide. Pour créer un rapport de tcd, vous devez utiliser des données sous forme de liste avec des étiquettes de colonnes... "

Je n'ai pas compris d'où provient l'erreur. En sachant que ma source de données commence en A3. (Peut-être changer le Cells de la variable plr et plc ? )
plr = pdsheet.Cells(Rows.Count, 1).End(xlUp).Row
plc = pdsheet.Cells(1, Columns.Count).End(xlToLeft).Column


(pdsheet = feuille où il y la source de données
pvsheet = feuille qui accueille le TCD)

Si vous avez une idée, je vous en serais reconnaissant...

Baptiste
A voir également:

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
as-tu utilisé l'enregistreur de macros pour comprendre comment créer un TCD?
0
Baptiste_xls Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour non je ne me suis pas appuyé directement sur ça.

Finalement le code marche si les entêtes de colonnes sont sur la première ligne...
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
peux-tu alors marquer la discussion comme résolue?
0