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 :
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,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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![]()
Partager