VBA : Macro pour modifier source externe de plusieurs TCD
Bonjour,
Dans le cadre de mon travail, j'ai besoin de réaliser des macros sous Excel 2003, n'ayant plus touché à ça depuis quelques années durant mes études (vive la théorie ...), je suis un peu perdu.
Le contexte :
J'ai réalisé deux fichiers Excel :
-Un est un grosse base de données très complètes, réalisé à partir d'une extraction.
- Le second est une synthèse du premier fichier, à destination de responsables, et composé d'onglet avec chacun un TCD ayant pour source une plage de données du premier fichier.
Mon problème est d'essayer de réaliser une macro pour m'éviter à changer manuellement la source sur chaque TCD. car le premier fichier change de nom périodiquement (ex : Fichier1 Sept 13, Fichier 1 Oct 13 ...).
Pour l'instant, comme j'ai quelques restes, j'ai réalisé la macro suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Private Sub CommandButton1_Click()
Dim DataSource As Range, Sh As Worksheet
Dim PvT As PivotTable
Dim clasource As String, nomfeuil As String
clasource = Range("E47"): nomfeuil = Range("E48")
With Workbooks(clasource).Sheets(nomfeuil)
Set DataSource = Range("E49")
Application.EnableEvents = False
For Each Sh In Worksheets
For Each PvT In Sh.PivotTables
PvT.ChangePivotCache ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="clasource" & "nomfeuil" & "!" & DataSource.Address, Version:=xlPivotTableVersion14)
PvT.RefreshTable
Next PvT
Next Sh
Application.EnableEvents = True
End With
End Sub |
Le but est à partir d'une source copier coller de l'adresse du fichier1 dans des cellules du second fichier, en l’occurrence E47 à E49,
J'obtiens une erreur 6, sur la ligne With Workbooks(clasource).Sheets(nomfeuil) et j'imagine qu'il y a d'autres pépins.:?
En vous remerciant par avance :)