Boucle pour changer toutes les bases de TCD sur plusieurs feuilles

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
 

Egruat

XLDnaute Occasionnel
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.
 

Pierrot93

XLDnaute Barbatruc
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
 

Egruat

XLDnaute Occasionnel
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...
 

Statistiques des forums

Discussions
312 038
Messages
2 084 824
Membres
102 682
dernier inscrit
ing_dupree