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

Signaler
Messages postés
6
Date d'inscription
mercredi 3 février 2021
Statut
Membre
Dernière intervention
10 mars 2021
-
Messages postés
16033
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 juin 2021
-
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

2 réponses

Messages postés
16033
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 juin 2021
867
bonjour,
as-tu utilisé l'enregistreur de macros pour comprendre comment créer un TCD?
Messages postés
6
Date d'inscription
mercredi 3 février 2021
Statut
Membre
Dernière intervention
10 mars 2021

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...
Messages postés
16033
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 juin 2021
867
peux-tu alors marquer la discussion comme résolue?