2016-07-26 1 views
1

Le code ci-dessous fonctionne pour une plage de données de tableau croisé dynamique sur une feuille qui, lorsque "SelectionChange" est activé (chaque clic), met à jour tous les tableaux croisés dynamiques sur chaque feuille de calcul. Il fonctionne généralement sauf si je l'édite et réessayeworksheet_change erreur d'exécution

QUESTION: comment utiliser "Worksheet_Change" pour cela? Je reçois toujours une erreur de temps d'exécution et ne peut pas comprendre la syntaxe

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
For Each ws In ActiveWorkbook.Worksheets 
Call PivRefresh 
Next 
End Sub 


Sub PivRefresh() 
ActiveSheet.PivotTables("PivotTable3").PivotCache.refresh 
End Sub 

Répondre

2

Vous faites référence à la même feuille à chaque fois - vous avez besoin quelque chose comme:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    For Each ws In ActiveWorkbook.Worksheets 
     ws.PivotTables("PivotTable3").PivotCache.Refresh 
    Next 
End Sub 

Pas besoin de la PivRefresh() sous