J'ai fait des recherches à ce sujet et je crains qu'il n'y ait pas de réponse. Mais peut-être que les gens vraiment intelligents sur ce site peuvent vous aider.Excel 2010: Comment modifier les données source de la table pivotante sans déconnecter les segments?
J'ai deux classeurs qui fonctionnent ensemble - Charts.xlsm et Data.xlsm. Ils sont toujours conservés dans le même dossier. Le fichier Charts.xlsm contient évidemment tous mes graphiques, mais ils sont tous liés aux tables de Data.xlsm pour leur source. J'ai aussi beaucoup de trancheurs dans mon fichier Charts.xlsm qui sont connectés aux graphiques, et ils partagent des caches quand ils sont connectés à des graphiques avec la même source de données. Les deux classeurs sont toujours ouverts en même temps afin que la référence de source de données ressemble à ceci: 'Data.xlsm'! Table1
Tout cela fonctionne très bien, jusqu'à ce que je mette ces classeurs sur un autre ordinateur (c'est pourquoi je suis ce faisant, j'ai besoin de savoir comment résoudre ce problème).
Une fois que les classeurs sont fermés, les références de données source changent à un emplacement spécifique sur mon disque dur: « C: \ Dossier \ Data.xlsm » Tableau 1
Si je veux changer manuellement ce retour à un local! référence, je dois d'abord passer par et déconnecter chaque tranche, rafraîchir les tables, puis reconnecter chaque trancheuse. Pas une solution viable pour mes clients. J'utiliserais VBA pour changer les références chaque fois que Charts.xlsm est ouvert, mais lorsque je l'ai essayé, deux choses se produisaient: soit le classeur produisait des erreurs qui empêchaient l'enregistrement, soit Excel plantait complètement.
C'est le code qui fonctionne parfaitement pour déconnecter les trancheuses, mais produit l'erreur « sauver »:
Sub Disconnect_Slicers()
Dim oSliceCache As SlicerCache
Dim PT As PivotTable
Dim i As Long
For Each oSliceCache In ThisWorkbook.SlicerCaches
With ActiveWorkbook.SlicerCaches(oSliceCache.Name).PivotTables
For i = .Count To 1 Step -1
.RemovePivotTable (.Item(i))
Next i
End With
Next oSliceCache
End Sub
Alors ... Je demande aux génies Excel/VBA là-bas s'il y a une façon Je peux maintenir un emplacement relatif pour mes graphiques lorsqu'ils recherchent Data.xlsm afin que, quel que soit l'ordinateur sur lequel j'ouvre ces classeurs, ils soient toujours activement liés.
Merci beaucoup à l'avance!
Attention! Le sous-programme 'Disconnect_Slicers()' a réellement détruit mon programme Excel - maintenant rien ne sera sauvegardé. Je ne sais pas comment quelque chose d'aussi petit aurait pu détruire le fonctionnement interne d'Excel, mais c'est le cas. Donc ... la prudence est recommandée. –