Rafraichir des tcd en VBA

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 !

sonskriverez

XLDnaute Occasionnel
Bonjour le forum

J'ai un fichier qui comporte 1 feuille "TCD" qui contient 5 tcd. Toutes les semaines j'importe dans ce fichier via macro 5 feuilles. lorsque je rafraichi mes tcd (ThisWorkbook.RefreshAll) cela ne fonctionne pas car les tcd gardent le chemin du fichier enregistré la semaine dernière sous un nom différent.

Comment faire pour actualiser en VBA les tcd avec les nouvelles feuilles

Merci de votre aide
 
Re : Rafraichir des tcd en VBA

Bonjour,

Moi perso je rafraichis les TCD un par un avec :

Worksheets("FEUILLE").Activate
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh

tu peux faire :
Worksheets("FEUILLE").Activate
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotCache.Refresh
ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotCache.Refresh
ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotCache.Refresh
ActiveSheet.PivotTables("Tableau croisé dynamique5").PivotCache.Refresh


essaies tu verras bien
 
Re : Rafraichir des tcd en VBA

Bonjour,

cela ne fonctionne pas car les tcd gardent le chemin du fichier enregistré la semaine dernière sous un nom différent.

d'après ce que je comprends, il ne s'agit pas d'un rafraichissement mais plutôt d'une modification de la source des données.... voir du coté de "SourceData" qui doit être à redéfinir.... enfin si j'ai bien compris...

bon après midi
@+
 
Re : Rafraichir des tcd en VBA

Re,

regarde peut être ceci, noms des classseurs et feuilles à adapter, à voir également s'il y a lieu de faire une boucle.... les 2 classeurs sont ouverts...

Code:
Dim maplage As Range
Set maplage = Workbooks("classeur1.xls").Sheets("Feuil1").Range("A1").CurrentRegion
Workbooks("classeur2.xls").Sheets("Feuil2").PivotTables(1).SourceData = maplage.AddressLocal(ReferenceStyle:=xlR1C1, external:=True)
 
Re : Rafraichir des tcd en VBA

Encore une fois je me suis me suis mal expliqué.

J'ai pas 2 classeur mais un seul qui contient une feuille TCD, une macro va importer toutes les semaines 5 nouvelles feuilles toujours les mêmes mais avec des lignes en plus ou en moins.

ci-joint un petit exemple, c'est toujours mieux pour comprendre

Merci
 

Pièces jointes

Re : Rafraichir des tcd en VBA

Re,

supprime les objets "workbooks" alors :
Code:
Dim maplage As Range
Set maplage = Sheets("Feuil1").Range("A1").CurrentRegion
Sheets("Feuil2").PivotTables(1).SourceData = maplage.AddressLocal(ReferenceStyle:=xlR1C1, external:=True)

ton classeur xlsx ne prends pas en charge les macros....
 
Re : Rafraichir des tcd en VBA

Re, bonsoir Jean-Claude🙂

Si les noms de feuilles sont toujours identiques :

Création de plage nommées

Aarf Jean-Claude🙂... si importation de nouvelles feuilles, on peut supposer que les anciennes soit supprimée avant et de ce fait la plage nommée ne va plus faire référence à rien, non ?? enfin me semble t il...

une macro va importer toutes les semaines 5 nouvelles feuilles
 
Re : Rafraichir des tcd en VBA

Bonjour à tous,

Re mon Pierrot,
une macro va importer toutes les semaines 5 nouvelles feuilles toujours les mêmes mais avec des lignes en plus ou en moins.

Toujours les mêmes...
On peut même supposer que les nouvelles données écrasent les anciennes.

A++ mon ami et si je fais fausse route, j'aurais eu le plaisir de te croiser presque IcosaMegaBarbatruc

A+ à tous
 
Re : Rafraichir des tcd en VBA

Re,

allez... au cas où.... 🙂

Code:
Option Explicit
Sub test()
Dim maplage As Range, i As Integer
For i = 1 To 5
    Set maplage = Sheets(i + 1).Range("A1").CurrentRegion
    Sheets("Tcd").PivotTables("PivotTable" & i).SourceData = maplage.AddressLocal(ReferenceStyle:=xlR1C1, external:=True)
Next i
End Sub

@+
 
Re : Rafraichir des tcd en VBA

Bonjour JCGL

Pierrot a raison, je ne conserve pas les sheets, au départ il y que 1 feuille "TCD" mais par contre il y aussi plusieurs autres feuilles générées par la macro, et je tire les TCD que de sur des feuilles bien précises.
J'ai fais des essais avec les macros du post, ça ne marche pas.
Je me demande si ce n'est pas plus simple de créer directement les 5 tcd via vba !
 
- 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

Discussions similaires

Réponses
16
Affichages
1 K
Réponses
3
Affichages
880
Retour