Boucle pour changer toutes les bases de TCD sur plusieurs feuilles

  • Initiateur de la discussion Initiateur de la discussion Egruat
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Egruat

XLDnaute Occasionnel
Bonjour,

Je souhaiterai changer la base de référence des données de plusieurs TCD sur plusieurs feuilles. J'y suis presque mais j'ai une erreur que je ne trouve pas. Quelqu'un ^peut-il m'aider ?
Cordialement.

Voici le code:

Dim Ws As Worksheet
Dim pt As PivotTable

For Each Ws In Worksheets
Ws.Select
Range("D8").Select

For Each pt In Ws.PivotTables

' Sélection des TCD et modification de leur cache en fonction de la valeur d'une référence M

If M < 10 Then
ActiveSheet.pt("TOTCIF").ChangePivotCache ActiveWorkbook.PivotCaches. _
Create(SourceType:=xlDatabase, SourceData:= _
"'C:\Doc1\2013\Document1.xls'!data", Version:=xlPivotTableVersion10)
Else
"'C:\Doc1\2013\Document2.xls'!data", Version:=xlPivotTableVersion10)

End If
 
Re : Boucle pour changer toutes les bases de TCD sur plusieurs feuilles

Voici le code complet:

Public M As Integer
Dim Ws As Worksheet
Dim pt As PivotTable

M = Range("F7").Value

For Each Ws In Worksheets
Ws.Select
Range("D8").Select

For Each pt In Ws.PivotTables

' Sélection des TCD et modification de leur cache en fonction de la valeur d'une référence M

If M < 10 Then
ActiveSheet.pt("TOTCIF").ChangePivotCache ActiveWorkbook.PivotCaches. _
Create(SourceType:=xlDatabase, SourceData:= _
"'C:\Doc1\2013\Document1.xls'!data", Version:=xlPivotTableVersion10)
Else
"'C:\Doc1\2013\Document2.xls'!data", Version:=xlPivotTableVersion10)

End If


Je tape une valeur numérique dans M.
 
Re : Boucle pour changer toutes les bases de TCD sur plusieurs feuilles

Re,

essaye peut être ceci :

Code:
Dim Ws As Worksheet, pt As PivotTable
M = Range("F7").Value
For Each Ws In Worksheets
    For Each pt In Ws.PivotTables
        If M < 10 Then
            pt.SourceData = "'C:\Doc1\2013\[Document1.xls]'!data"
        Else
            pt.SourceData = "'C:\Doc1\2013\[Document2.xls]'!data"
        End If
    Next pt
Next Ws
 
Re : Boucle pour changer toutes les bases de TCD sur plusieurs feuilles

Bonjour,

ton code est plus simple et fonctionne lorsqu'il n'y a qu'un seul TCD sur une feuille. En revanche, cela ne fonctionne pas dès qu'il y a plusieurs TCD...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour