Modification source TCD avec VBA

alexane

XLDnaute Occasionnel
Bonjour à tous
J'ai écrit un petit code qui me permet de modifier la source d'un tableau croisé dynamique
Code:
plage = Sheets("source").Range("A1").CurrentRegion.Address(ReferenceStyle:=xlR1C1)
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
        "source!" & plage
Le code marche bien.
J'ai voulu ensuite l'intégrer dans une procédure evenementielle (PivotTableUpdate) pour qu'il s'exécute automatiquement
Ca fonctionne toujours mais on voit le travail de recalcul s'éxécuter alors que lorsque le code s'exécuter à partir d'un module classique, il se deroulait à toute vitesse sans que ce travail de recalcul apparaisse. Comment faire pour ne pas voir ce recalcul ? (j'ai bien coller une Application.screenupdating = false mais sans succes).
Ci joint mon code.
Merci
 

Pièces jointes

  • tcd.xls
    34 KB · Affichages: 60
  • tcd.xls
    34 KB · Affichages: 66
  • tcd.xls
    34 KB · Affichages: 71

pierrejean

XLDnaute Barbatruc
Re : Modification source TCD avec VBA

Bonjour alexane

Problème classique de la macro qui modifie la feuille qui enclenche la macro qui modifie la feuille qui enclenche la macro qui modifie la feuille.......

Teste:

VB:
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Application.EnableEvents = False
Application.ScreenUpdating = False
    plage = Sheets("source").Range("A1").CurrentRegion.Address(ReferenceStyle:=xlR1C1)
    ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
            "source!" & plage
    Application.ReferenceStyle = xlA1
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 571
Messages
2 089 805
Membres
104 276
dernier inscrit
helenevellocet