Changer BDD d'un TCD - VBA

Bonjour, j'ai un problème avec ce code :

source_data = "Détail Cargowise!R1C1:R" & 5000 & "C46"
        For Each pt In ActiveSheet.PivotTables
            pt.ChangePivotCache ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _
            SourceData:=source_data)
            pt.SaveData = True
        Next pt

J'aimerai que ma source Data prenne la valeur A1 à AX 5000 mais impossible de l'adapter de mon coté

Auriez vous une solution ?

[Je vais essayé de joindre un fichier]

Cordialement,
Parrish

Bonjour,

Essaie ainsi, si la plage de données est fixe.
Un petit fichier ?
Cdlt.

Dim source_data As Range
    Set source_data = Worksheets("Détail Cargowise").Range("A1:AX5000")
    For Each pt In ActiveSheet.PivotTables
        pt.ChangePivotCache ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=source_data)
        pt.SaveData = True
    Next pt

Bonjour Jean-Eric ;

Ta solution marche merci, cependant il reste un problème, ma taille de ma source_data varie exemple

Set source_data = Worksheets("Détail Cargowise").Range("A1:BM5000")

Mais ca pourrait très bien être jusqu'a BZ par exemple c'est donc pour ça que j'ai voulu la mettre sur CZ pour être large mais vu qu'il n'y à pas de donné à cet endroit la ca ne marche pas, aurait tu une solution ?

-----
Finalement le fichier est trop complexe pour que je puisse en faire une version avec des données non confidentielles mais je peux partager tout le code de la macro si cela peut aider
------

Cordialement;
Parrish

Re,
Essaie ainsi ainsi :

Set source_data = Worksheets("Détail Cargowise").Cells(1).CurrentRegion

Note: Pour quelle raison, les données ne sont-elles pas sous forme de tableau structuré ?

Qu'entend tu par tableau structuré ?

Merci beaucoup en tout cas, la dernier solution marche parfaitement bien :)

Re,

capture d ecran 2023 02 10 101530

En gros ma macro copie un TCD d'un autre fichier et pour rompre la liaison ouvre la bdd de ce TCD et met à jours sa source dessus pour ne plus être en lien avec l'ancien fichier

Le but : Il s'agit d'un TCD qui à plusieurs zone dans sa BDD exemple France - USA - Chine et ensuite de créer un Fichier par zone

Re,
Quel est l'objectif ?
Eviter de recréer un TCD !
J'avoue ne pas comprendre la chose !
Cdlt.

L'objectif est de copie le TCD d'un fichier A et le collé sur le fichier B

Ont ne veux pas garder une liaison entre le fichier B et le fichier A

Donc sur le fichier B ont ouvre la donnée du TCD et ont met sa source de donné sur cet donné (donné obtenu en double clichant sur le TCD)

Re,
Tu veux donc éviter de recréer un TCD !
Tu peux envisager de travailler avec Power Query en changeant le chemin (ou répertoire) du fichier...
Cdlt.

J'avoue ne pas connaitre grand chose de power Query de plus mon entreprises n'est pas des ajout en plus dans ce genre (nous sommes encore sur 2013) et PQ n'existe qu'en extension et n'est malheuresement pas intégré avec la peur de l'indomptabilité entre ceux qui l'ont et ceux qui ne l'ont pas cela ne vas aps etre possible

Rechercher des sujets similaires à "changer bdd tcd vba"