VBA Vernieuwen draaitabel

Excel VBA Vernieuwen draaitabel

Wanneer we een draaitabel in het blad invoegen , veranderen de gegevens van de draaitabel niet zelf, maar we moeten dit handmatig doen, maar in VBA is er een instructie om de draaitabel te vernieuwen die expression.refreshtable is , hiermee kunnen we de draaitabel door te verwijzen naar het werkblad waaruit het bestaat, of we kunnen naar de volledige draaitabellen in de werkbladen verwijzen en ze allemaal tegelijk vernieuwen.

De draaitabel is essentieel bij het analyseren van de enorme hoeveelheid gegevens. Het helpt bij het analyseren, samenvatten en het maken van bruikbare gegevensinterpretatie. Een van de problemen met deze draaitabel is echter dat deze niet automatisch wordt vernieuwd als er een wijziging is in de brongegevens, de gebruiker moet de draaitabel vernieuwen door naar de betreffende draaitabel te gaan elke keer dat er een wijziging is. Maar neem afscheid van het handmatige proces, want hier hebben we de methode om de draaitabel te vernieuwen zodra u een wijziging in de draaitabel aanbrengt.

Hoe automatisch de VBA-code van draaitabelgegevens vernieuwen?

De enige keer dat de draaitabel moet worden bijgewerkt, is wanneer er een wijziging is in de brongegevens van de draaitabel waarnaar we verwijzen.

Kijk bijvoorbeeld naar de onderstaande gegevens en draaitabel.

Nu zal ik de cijfers in de brongegevens wijzigen, dwz van A1 naar B17.

In cel B9 moet ik de waarde wijzigen van 499 naar 1499, dwz 1000 toename van de gegevens, maar als je naar het draaipunt kijkt, wordt het resultaat nog steeds weergegeven als 4295 in plaats van 5295. Ik moet mijn draaitabel handmatig vernieuwen om de draaitabel bij te werken.

Om dit probleem op te lossen, moeten we een eenvoudige Excel-macrocode schrijven om de draaitabel te vernieuwen wanneer er een wijziging is in de brongegevens.

U kunt deze VBA Vernieuwen draaitabel Excel-sjabloon hier downloaden - VBA Vernieuwen draaitabel Excel-sjabloon

# 1 - Eenvoudige macro om alle tabellen te vernieuwen

Stap 1: Wijzig de gebeurtenis van het gegevensblad

We moeten de wijzigingsgebeurtenis van het gegevensblad activeren. Dubbelklik in de visuele basiseditor op het gegevensblad.

Zodra u dubbelklikt op het blad, selecteert u “Werkblad” en selecteert u de gebeurtenis als “Wijzigen”.

U ziet een automatische subprocedure geopend als Worksheet_Change (ByVal Target As Range)

Stap 2: gebruik werkbladobject

Raadpleeg het gegevensblad met behulp van het Worksheets-object.

Stap 3: Verwijs de draaitabel op naam

Verwijs naar de naam van de draaitabel met de naam van de draaitabel.

Stap 4: Gebruik de tabel vernieuwen

Selecteer de methode als "Tabel vernieuwen".

Nu zal deze code de draaitabel "PivotTable1" vernieuwen wanneer er een wijziging is in het brongegevensblad. U kunt de onderstaande code gebruiken, u hoeft alleen de naam van de draaitabel te wijzigen.

Code:

 Private Sub Worksheet_Change (ByVal Target As Range) Worksheet ("Data Sheet"). Draaitabellen ("PivotTable1"). RefreshTable End Sub 

# 2 - Vernieuw alle draaitabellen van hetzelfde werkblad

Als u veel draaitabellen in hetzelfde werkblad heeft, kunt u alle draaitabellen zelf met een enkele klik vernieuwen. Gebruik de onderstaande code om alle draaitabellen in het blad te vernieuwen.

Code:

 Sub Refresh_Pivot_Tables_Example1 () Worksheets ("Data Sheet"). Selecteer met ActiveSheet .PivotTables ("Table1"). RefreshTable .PivotTables ("Table2"). RefreshTable .PivotTables ("Table3"). RefreshTable .PivotTables ("Table4"). RefreshTable .PivotTables ("Table5"). RefreshTable End With End Sub 

U moet de naam van het werkblad en de draaitabelnamen wijzigen volgens uw werkbladdetails.

# 3 - Vernieuw alle tabellen in de werkmap

Het is hoogst onwaarschijnlijk dat we alle draaitabellen op hetzelfde werkblad hebben. Meestal proberen we voor elk rapport afzonderlijke draaitabellen in afzonderlijke bladen toe te voegen. In deze gevallen kunnen we de code niet blijven schrijven voor elke draaitabel die moet worden vernieuwd.

Dus wat we kunnen doen, is met een enkele code met behulp van lussen, we kunnen door alle draaitabellen in de werkmap bladeren en ze vernieuwen met een enkele klik op de knop.

De onderstaande code zal elke draaitabel doorlopen en ze vernieuwen.

Code 1:

 Sub Refresh_Pivot_Tables_Example2 () Dim PT als draaitabel voor elke PT in ActiveWorkbook.PivotTables PT.RefreshTable Volgende PT End Sub 

Code 2:

 Sub Refresh_Pivot_Tables_Example3 () PC dimmen als PivotCache voor elke pc in ActiveWorkbook.PivotCaches PC.Refresh Volgende PT End Sub 

Beide codes zorgen voor het vernieuwen van draaitabellen.

Als u wilt dat de draaitabel wordt vernieuwd zodra er een wijziging is in het gegevensblad van het draaiblad, moet u de bovenstaande codes kopiëren en plakken in de gebeurtenis Werkbladwijziging in die werkmap.

# 4 - Voorkom laadtijd door het werkblad Gebeurtenis deactiveren te gebruiken

Wanneer we de "Werkbladwijziging" -gebeurtenis gebruiken, wordt deze vernieuwd, zelfs als er geen wijziging is in de gegevensbron, maar als er een wijziging plaatsvindt in het werkblad.

Zelfs als u één enkele punt in het werkblad invoert, probeert het de draaitabel te vernieuwen. Om dit te vermijden kunnen we de "Werkblad Deactiveren" -methode gebruiken in plaats van de "Werkbladwijziging" -methode.

Deactiveer de gebeurtenisupdates op de draaitabel wanneer u van het ene blad naar het andere blad gaat.

Original text