Changer la source de donnée d'un TCD

Bonjour à tous,

j'ai actuellement un TCD relié à une source de données. J'aimerai pouvoir créer une Macro qui met a jour mon tcd. La base de données en question est susceptible de changer et le nombre de ligne aussi. C'est pourquoi j'aimerai que ma macro change la source de donnée en fonction du nombre de ligne.

J'ai donc créer la macro si dessous. Le problème étant que lorsque je l'exécute , J'ai un message d'erreur qui s'affiche : "Erreur d'execution Le nom du champ de tableau croisé dynamique n'est pas valide. POur créer un rapport de tableau croisé dynamique,vous devez utiliser des données sous forme de liste avec des étiquettes de colonnes. Si vous changez le nom du tableau croisé dynamique , vous devez taper un nouveau nom dans le champ."

Je ne sais pas quoi modifier dans mon code afin de résoudre ce problème.

J'espere que quelqu'un aura la solution! Merci d'avance!

Sub tcdmaj

Dim derligne As Integer

derligne = Range("A" & Rows.Count).End(xlUp).Row

Dim tcd3 As PivotTable, SrcData As String

If "Tableau croisé dynamique3" <> vbNullString Then
Set tcd3 = Sheets("TCD_AnoGPS& PA hors doublon").PivotTables("Tableau croisé dynamique3")
Else
Set tcd3 = Sheets("TCD_AnoGPS& PA hors doublon").PivotTables(1)
End If

' Détermine la nouvelle source de données du tcd
SrcData = ActiveSheet.Range("A1:AH" & derligne).Address(ReferenceStyle:=xlR1C1, External:=True)

' Change la source de données
tcd3.ChangePivotCache ActiveWorkbook.PivotCaches.Create( _
SourceType:=xlDatabase, _
SourceData:=SrcData)

' Détermine la nouvelle source de données du tcd
SrcData = ActiveSheet.Range("A1:AH" & derligne).Address(ReferenceStyle:=xlR1C1, External:=True)

ActiveSheet.PivotTables("Tableaucroisédynamique3").PivotCache.Refresh
Cells.Select
Selection.Copy
Sheets("Copie TCD - données pour report").Select
Cells.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Bonjour,

Si le problème est seulement le nombre de ligne de votre base de données, alors il faut simplement utiliser des tableaux strutucrés.

Cdt

Bonjour Valentin,

Je te remercie pour ta reponse, mais je ne dois garder le format TCD sur ce document.

Bonjour,

Ce qu'a voulu te dire Valentin, c'est que le tableau qui te sert de base pour ton TCD doit être mis sous format de Tableau Structuré...

Ainsi, ce que tu appelles "srcData" ne te servira plus, le TCD prendra automatiquement toute la plage du TS

Rechercher des sujets similaires à "changer source donnee tcd"