Bonjour,
Avec ta procédure tu crées 12 caches de TCD !...
Modifie ainsi (pas réellement testé).
Tu ne devrais plus avoir qu'un cache.
Il faudra recréer ton segment.
Cdlt.
Sub ChangePivotCache()
Dim pt As PivotTable, ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
pt.CacheIndex = Sheets("TCD").PivotTables(1).CacheIndex
Next pt
Next ws
End Sub