J'ai mon classeur principal (.xlsm) contenant une feuille avec une table de
données ListObject("DataLines") et plusieurs autres feuilles avec des
pivotTables un peu élaborées branchées sur cette table. Et contenant aussi
des autres feuilles.
Je veux créer et enregistrer un autre classeur (.xlsx) contenant ces données
et ces PivotTables.
Et je n'y arrive point.
Impossible de réussir à rediriger le pivotcache ou la sourcedata de mes
pivottables sur le classeur nouveau !
La copie des feuilles est OK (même avec la ListObject)
Ensuite, dans le meilleur des cas, j'ai une erreur 1004 : Excel refuse
d'enregistrer. Carrément.
Les autres fois, le classeur est bien créé, pas d'erreur levée. Mais quand
je le rouvre, il est corrompu et fait planter Excel.
Je crois comprendre que la difficulté vient du fait qu'il y a plusieurs PT
sur la même source
Voilà un extrait de mon code...
Un peu d'aide serait appréciée : j'ai l'impression de tourner en rond
Merci aux bonnes âmes !
'*********************************************************************
'Copie des feuilles utiles dans un nouveau classeur
ThisWorkbook.Sheets(Array("Global", "Status", "Metrics", "IS", "Summary",
"DataLines", "Parameters")).Copy
Set wkbGlobal = ActiveWorkbook 'celui qui vient d'être créé ligne
précédente
'enregistrer ce classeur Global
ActiveWorkbook.SaveAs strFileName, 51 '<=ça c'est OK, mais les PT ne
sont pas encore branchées sur la bonne source
With wkbGlobal
'informations générales sur la feuille Global
.Sheets("Global").Range("B6").Value = strFileName
'J'ai essayé ce qui suit. Il semble le faire, mais refuse ensuite
d'enregistrer le fichier (corrompu, qu'il dit)
'rediriger la SourceData des PT
.Sheets("Status").PivotTables(1).SourceData = _
.Sheets("Datalines").ListObjects("TableData").Range.Address(ReferenceStyle:=xlR1C1,
external:=True)
.Save
'J'ai essayé avec le CacheIndex sans plus de succès
' .Sheets("Metrics").PivotTables(1).CacheIndex = _
' .Sheets("Status").PivotTables(1).CacheIndex
.Save
'suis en train d'essayer ChangePivotCache mais ça merdouille aussi pour
l'instant
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Igor
Je me réponds pour que vous n'y passiez pas la nuit ^^
Devant le refus définitif d'Excel d'enregistrer mon classeur contenant mes feuilles copiées, j'ai contourné... Faut dire que les PT ("un peu élaborés") contiennent des tas de trucs : regroupements de dates, de nombres, des champs calculés, filtres en tous genres, et slicers, et pas mal de détails de présentation.
J'ai fait un tout petit classeur exemple qui ne pose pas de problème, lui. Ni pour la SourceData, ni pour le CacheIndex. Et qui s'enregistre très bien. Je n'ai donc pas précisément compris d'où venait l'erreur. En tous cas, pas un problème de syntaxe.
La soluce adoptée : enregistrer mon classeur comme classeur final, et y supprimer tout ce qui y était inutile. Comme ça pas besoin de changer la source des PivotTables !
Mais ça m'a obligé à revoir le reste du programme déjà écrit, car j'avais d'autres classeurs à créer, avec les autres trucs supprimés dans Global. Une fois les feuilles supprimées, c'est dur ;)
Merci (à moi d'abord) et à vous : d'exister.
"Igor" a écrit dans le message de news:546a1f58$0$2395$
Bonjour le groupe (Excel 2013)
J'ai mon classeur principal (.xlsm) contenant une feuille avec une table de données ListObject("DataLines") et plusieurs autres feuilles avec des pivotTables un peu élaborées branchées sur cette table. Et contenant aussi des autres feuilles.
Je veux créer et enregistrer un autre classeur (.xlsx) contenant ces données et ces PivotTables. Et je n'y arrive point.
Impossible de réussir à rediriger le pivotcache ou la sourcedata de mes pivottables sur le classeur nouveau ! La copie des feuilles est OK (même avec la ListObject) Ensuite, dans le meilleur des cas, j'ai une erreur 1004 : Excel refuse d'enregistrer. Carrément. Les autres fois, le classeur est bien créé, pas d'erreur levée. Mais quand je le rouvre, il est corrompu et fait planter Excel. Je crois comprendre que la difficulté vient du fait qu'il y a plusieurs PT sur la même source
Voilà un extrait de mon code... Un peu d'aide serait appréciée : j'ai l'impression de tourner en rond
Merci aux bonnes âmes !
'********************************************************************* 'Copie des feuilles utiles dans un nouveau classeur ThisWorkbook.Sheets(Array("Global", "Status", "Metrics", "IS", "Summary", "DataLines", "Parameters")).Copy
Set wkbGlobal = ActiveWorkbook 'celui qui vient d'être créé ligne précédente
'enregistrer ce classeur Global ActiveWorkbook.SaveAs strFileName, 51 '<=ça c'est OK, mais les PT ne sont pas encore branchées sur la bonne source
With wkbGlobal 'informations générales sur la feuille Global .Sheets("Global").Range("B6").Value = strFileName
'J'ai essayé ce qui suit. Il semble le faire, mais refuse ensuite d'enregistrer le fichier (corrompu, qu'il dit) 'rediriger la SourceData des PT .Sheets("Status").PivotTables(1).SourceData = _
'J'ai essayé avec le CacheIndex sans plus de succès ' .Sheets("Metrics").PivotTables(1).CacheIndex = _ ' .Sheets("Status").PivotTables(1).CacheIndex .Save
'suis en train d'essayer ChangePivotCache mais ça merdouille aussi pour l'instant
Je me réponds pour que vous n'y passiez pas la nuit ^^
Devant le refus définitif d'Excel d'enregistrer mon classeur contenant mes
feuilles copiées, j'ai contourné...
Faut dire que les PT ("un peu élaborés") contiennent des tas de trucs :
regroupements de dates, de nombres, des champs calculés, filtres en tous
genres, et slicers, et pas mal de détails de présentation.
J'ai fait un tout petit classeur exemple qui ne pose pas de problème, lui.
Ni pour la SourceData, ni pour le CacheIndex.
Et qui s'enregistre très bien.
Je n'ai donc pas précisément compris d'où venait l'erreur. En tous cas, pas
un problème de syntaxe.
La soluce adoptée :
enregistrer mon classeur comme classeur final, et y supprimer tout ce qui y
était inutile.
Comme ça pas besoin de changer la source des PivotTables !
Mais ça m'a obligé à revoir le reste du programme déjà écrit, car j'avais
d'autres classeurs à créer, avec les autres trucs supprimés dans Global. Une
fois les feuilles supprimées, c'est dur ;)
Merci (à moi d'abord) et à vous : d'exister.
"Igor" <igor.hagard@nospam.net> a écrit dans le message de
news:546a1f58$0$2395$426a34cc@news.free.fr...
Bonjour le groupe
(Excel 2013)
J'ai mon classeur principal (.xlsm) contenant une feuille avec une table
de données ListObject("DataLines") et plusieurs autres feuilles avec des
pivotTables un peu élaborées branchées sur cette table. Et contenant
aussi des autres feuilles.
Je veux créer et enregistrer un autre classeur (.xlsx) contenant ces
données et ces PivotTables.
Et je n'y arrive point.
Impossible de réussir à rediriger le pivotcache ou la sourcedata de mes
pivottables sur le classeur nouveau !
La copie des feuilles est OK (même avec la ListObject)
Ensuite, dans le meilleur des cas, j'ai une erreur 1004 : Excel refuse
d'enregistrer. Carrément.
Les autres fois, le classeur est bien créé, pas d'erreur levée. Mais quand
je le rouvre, il est corrompu et fait planter Excel.
Je crois comprendre que la difficulté vient du fait qu'il y a plusieurs PT
sur la même source
Voilà un extrait de mon code...
Un peu d'aide serait appréciée : j'ai l'impression de tourner en rond
Merci aux bonnes âmes !
'*********************************************************************
'Copie des feuilles utiles dans un nouveau classeur
ThisWorkbook.Sheets(Array("Global", "Status", "Metrics", "IS", "Summary",
"DataLines", "Parameters")).Copy
Set wkbGlobal = ActiveWorkbook 'celui qui vient d'être créé ligne
précédente
'enregistrer ce classeur Global
ActiveWorkbook.SaveAs strFileName, 51 '<=ça c'est OK, mais les PT ne
sont pas encore branchées sur la bonne source
With wkbGlobal
'informations générales sur la feuille Global
.Sheets("Global").Range("B6").Value = strFileName
'J'ai essayé ce qui suit. Il semble le faire, mais refuse ensuite
d'enregistrer le fichier (corrompu, qu'il dit)
'rediriger la SourceData des PT
.Sheets("Status").PivotTables(1).SourceData = _
'J'ai essayé avec le CacheIndex sans plus de succès
' .Sheets("Metrics").PivotTables(1).CacheIndex = _
' .Sheets("Status").PivotTables(1).CacheIndex
.Save
'suis en train d'essayer ChangePivotCache mais ça merdouille aussi pour
l'instant
Je me réponds pour que vous n'y passiez pas la nuit ^^
Devant le refus définitif d'Excel d'enregistrer mon classeur contenant mes feuilles copiées, j'ai contourné... Faut dire que les PT ("un peu élaborés") contiennent des tas de trucs : regroupements de dates, de nombres, des champs calculés, filtres en tous genres, et slicers, et pas mal de détails de présentation.
J'ai fait un tout petit classeur exemple qui ne pose pas de problème, lui. Ni pour la SourceData, ni pour le CacheIndex. Et qui s'enregistre très bien. Je n'ai donc pas précisément compris d'où venait l'erreur. En tous cas, pas un problème de syntaxe.
La soluce adoptée : enregistrer mon classeur comme classeur final, et y supprimer tout ce qui y était inutile. Comme ça pas besoin de changer la source des PivotTables !
Mais ça m'a obligé à revoir le reste du programme déjà écrit, car j'avais d'autres classeurs à créer, avec les autres trucs supprimés dans Global. Une fois les feuilles supprimées, c'est dur ;)
Merci (à moi d'abord) et à vous : d'exister.
"Igor" a écrit dans le message de news:546a1f58$0$2395$
Bonjour le groupe (Excel 2013)
J'ai mon classeur principal (.xlsm) contenant une feuille avec une table de données ListObject("DataLines") et plusieurs autres feuilles avec des pivotTables un peu élaborées branchées sur cette table. Et contenant aussi des autres feuilles.
Je veux créer et enregistrer un autre classeur (.xlsx) contenant ces données et ces PivotTables. Et je n'y arrive point.
Impossible de réussir à rediriger le pivotcache ou la sourcedata de mes pivottables sur le classeur nouveau ! La copie des feuilles est OK (même avec la ListObject) Ensuite, dans le meilleur des cas, j'ai une erreur 1004 : Excel refuse d'enregistrer. Carrément. Les autres fois, le classeur est bien créé, pas d'erreur levée. Mais quand je le rouvre, il est corrompu et fait planter Excel. Je crois comprendre que la difficulté vient du fait qu'il y a plusieurs PT sur la même source
Voilà un extrait de mon code... Un peu d'aide serait appréciée : j'ai l'impression de tourner en rond
Merci aux bonnes âmes !
'********************************************************************* 'Copie des feuilles utiles dans un nouveau classeur ThisWorkbook.Sheets(Array("Global", "Status", "Metrics", "IS", "Summary", "DataLines", "Parameters")).Copy
Set wkbGlobal = ActiveWorkbook 'celui qui vient d'être créé ligne précédente
'enregistrer ce classeur Global ActiveWorkbook.SaveAs strFileName, 51 '<=ça c'est OK, mais les PT ne sont pas encore branchées sur la bonne source
With wkbGlobal 'informations générales sur la feuille Global .Sheets("Global").Range("B6").Value = strFileName
'J'ai essayé ce qui suit. Il semble le faire, mais refuse ensuite d'enregistrer le fichier (corrompu, qu'il dit) 'rediriger la SourceData des PT .Sheets("Status").PivotTables(1).SourceData = _
'J'ai essayé avec le CacheIndex sans plus de succès ' .Sheets("Metrics").PivotTables(1).CacheIndex = _ ' .Sheets("Status").PivotTables(1).CacheIndex .Save
'suis en train d'essayer ChangePivotCache mais ça merdouille aussi pour l'instant