Macro màj tableau croisé dyn

dav123

XLDnaute Occasionnel
Bonjour le forum

Pouvez vous m'aider svp :confused:
Je souhaiterais connaitre les lignes de macros qui me permettrait de mettre à jour plusieurs tableaux croisés dynamiques d'une feuille excel

par avance merci de votre aide
 

Pierrot93

XLDnaute Barbatruc
Re : Macro màj tableau croisé dyn

Bonjour,
le code ci-dessous devrait répondre à ton besoin, à placer dans le module "thisworkbook", se déclenche à l'ouverture du classeur et réactualise tous les tcd de ce même classeur...

Code:
Option Explicit
Private Sub Workbook_Open()
Me.RefreshAll
End Sub

bonne journée
@+
 

dav123

XLDnaute Occasionnel
Re : Macro màj tableau croisé dyn

Bonjour,

OK merci pour cette réponse qui fonctionne parfaitement
Par contre je souhaiterais faire la màj des mes tcd avec un commandbutton click
Dans ce cas quel serait la macron à mettre en place
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Macro màj tableau croisé dyn

Bonjour dav, Pierrot

pour un rafraichissement automatique du TCD sans devoir utiliser un bouton, il est préférable d'utiliser ceci:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

' A2:C19 étant la zone de données prise en compte dans le TCD
' à adapter selon les besoins

If Not Intersect(Target, Range("A2:C19")) Is Nothing Then
   ThisWorkbook.RefreshAll
End If
End Sub
à+
Philippe
 

Pierrot93

XLDnaute Barbatruc
Re : Macro màj tableau croisé dyn

Bonjour,

Bonjour dav, Pierrot

pour un rafraichissement automatique du TCD sans devoir utiliser un bouton, il est préférable d'utiliser ceci:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

' A2:C19 étant la zone de données prise en compte dans le TCD
' à adapter selon les besoins

If Not Intersect(Target, Range("A2:C19")) Is Nothing Then
   ThisWorkbook.RefreshAll
End If
End Sub
à+
Philippe

Il me semblait que Dav voulait mettre à jour plusieurs TCD du même classeur... Sinon pour lier le rafraichissement aux données et actualiser uniquement le tcd en question :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2:C19")) Is Nothing Then
    Sheets("NOmFeuilleTCD").PivotTables(1).PivotCache.Refresh
End If
End Sub

si tcd positionné sur même feuille que les données, remplacer "Sheets("NOmFeuilleTCD")" par "Me"

bonne journée
@+
 

Discussions similaires

Réponses
5
Affichages
324

Statistiques des forums

Discussions
312 083
Messages
2 085 189
Membres
102 809
dernier inscrit
Sandrine83