Draaitabellen automatisch vernieuwen met VBA Excel

Zoals we allemaal weten, wordt dit niet onmiddellijk weergegeven in de draaitabel wanneer we wijzigingen aanbrengen in de brongegevens van een draaitabel. We moeten de draaitabellen vernieuwen om de wijzigingen te zien. En als u een bijgewerkt bestand verzendt zonder de draaitabellen te vernieuwen, kunt u zich in verlegenheid brengen.

Dus in dit artikel zullen we leren hoe je een draaitabel automatisch ververst met VBA. Deze manier is makkelijker dan je had gedacht.

Dit is de eenvoudige syntaxis om draaitabellen in de werkmap automatisch te vernieuwen.

'Code in brongegevensblad Object Private Sub Worksheet_Deactivate() sheetname_of_pivot_table.PivotTables("pivot_table_name").PivotCache.Refresh End Sub 

Wat zijn Pivot-caches?

Elke draaitabel slaat de gegevens op in de pivot-cache. Dit is de reden waarom pivot eerdere gegevens kan weergeven. Wanneer we draaitabellen vernieuwen, wordt de cache bijgewerkt met nieuwe brongegevens om de wijzigingen in de draaitabel weer te geven.

We hebben dus alleen een macro nodig om de cache van draaitabellen te vernieuwen. We zullen dit doen met behulp van een werkbladgebeurtenis, zodat we de macro niet handmatig hoeven uit te voeren.

Waar te coderen om draaitabellen automatisch te vernieuwen?

Als uw brongegevens en draaitabellen zich in verschillende bladen bevinden, moet de VBA-code in het brongegevensblad staan.

Hier zullen we Worksheet_SelectionChange Event gebruiken. Hierdoor wordt de code uitgevoerd wanneer we overschakelen van het brongegevensblad naar een ander blad. Ik zal later uitleggen waarom ik deze gebeurtenis heb gebruikt.

Hier heb ik brongegevens in blad2 en draaitabellen in blad1.

Open VBE met de CTRL+F11-toets. In de projectverkenner ziet u drie objecten, Blad1, Blad2 en de Werkmap.

Aangezien Sheet2 de brongegevens bevat, dubbelklikt u op het sheet2-object.

Nu ziet u twee vervolgkeuzelijsten bovenaan het codegebied. Selecteer het werkblad in de eerste vervolgkeuzelijst. En selecteer in de tweede vervolgkeuzelijst Deactiveren. Hiermee wordt een lege subnaam Worksheet_Deactivate ingevoegd. Onze code zal in deze sub worden geschreven. Alle regels die in deze sub zijn geschreven, worden uitgevoerd zodra de gebruiker van dit blad naar een ander blad overschakelt.

Op blad1 heb ik twee draaitabellen. Ik wil slechts één draaitabel vernieuwen. Daarvoor moet ik de naam van de draaitabel weten. Om de naam van een draaitabel te weten, selecteert u een cel in die draaitabel en gaat u naar het tabblad Analyse van draaitabel. Aan de linkerkant ziet u de naam van de draaitabel. U kunt hier ook de naam van de draaitabel wijzigen.

Nu we de naam van de draaitabel kennen, kunnen we een eenvoudige regel schrijven om de draaitabel te vernieuwen.

Private Sub Worksheet_Deactivate() Sheet1.PivotTables("PivotTable1").PivotCache.Refresh End Sub 

En het is gedaan.

Wanneer u nu van de brongegevens overschakelt, wordt deze vba-code uitgevoerd om de draaitabel1 te vernieuwen. Zoals je kunt zien in de gif hieronder.

Hoe alle draaitabellen in de werkmap te vernieuwen?

In het bovenstaande voorbeeld wilden we slechts één specifieke draaitabel vernieuwen. Maar als u alle draaitabellen in een werkmap wilt vernieuwen, hoeft u slechts kleine wijzigingen in uw code aan te brengen.

Private Sub Worksheet_Deactivate() 'Blad1.PivotTables("PivotTable1").PivotCache.Refresh For Each PC In ThisWorkbook.PivotCaches pc.Refresh Volgende pc End Sub 

In deze code gebruiken we een For-lus om door elke pivot-cache in de werkmap te lopen. Het ThisWorkbook-object bevat alle pivot-caches. Om toegang te krijgen gebruiken we ThisWorkbook.PivotCaches.

Waarom Worksheet_Deactivate Event gebruiken?

Als u de draaitabel wilt vernieuwen zodra er een wijziging in de brongegevens is aangebracht, moet u de gebeurtenis Worksheet_Change gebruiken. Maar ik raad het niet aan. Het zorgt ervoor dat uw werkmap de code uitvoert telkens wanneer u een wijziging in het blad aanbrengt. Mogelijk moet u honderden wijzigingen aanbrengen voordat u het resultaat wilt zien. Maar Excel ververst de draaitabel bij elke wijziging. Dit zal leiden tot verspilling van verwerkingstijd en middelen. Dus als je draaitabellen en gegevens in verschillende bladen hebt, is het beter om Worksheet Deactivate Event te gebruiken. Hiermee kunt u uw werk afmaken. Zodra u overschakelt naar draaitabelbladen om de wijzigingen te zien, worden de wijzigingen gewijzigd.

Als u draaitabellen en brongegevens op hetzelfde blad heeft en u wilt dat draaitabellen zichzelf automatisch vernieuwen, kunt u Worksheet_Change Event gebruiken.

Private Sub Worksheet_Change (ByVal Target As Range) Sheet1.PivotTables("PivotTable1").PivotCache.Refresh End Sub 

Hoe alles in werkmappen vernieuwen wanneer er een wijziging wordt aangebracht in brongegevens?

Als u alles in een werkmap (grafieken, draaitabellen, formules, enz.) wilt vernieuwen, kunt u de opdracht ThisWorkbook.RefreshAll gebruiken.

Private Sub Worksheet_Change (ByVal Target As Range) ThisWorkbook.RefreshAll End Sub 

Houd er rekening mee dat deze code de gegevensbron niet verandert. Dus als u gegevens toevoegt onder de brongegevens, bevat deze code die gegevens niet automatisch. U kunt Excel-tabellen gebruiken om brongegevens op te slaan. Als u geen tabellen wilt gebruiken, kunnen we VBA ook gebruiken om nieuwe gegevens op te nemen. We zullen het leren in de volgende tutorial.

Dus ja maat, dit is hoe je de draaitabellen in Excel automatisch kunt vernieuwen. Ik hoop dat ik voldoende uitleg heb gegeven en dat dit artikel je goed van pas is gekomen. Als u vragen heeft over dit onderwerp, kunt u deze aan mij stellen in de opmerkingen hieronder.

Dynamisch bijwerken van het gegevensbronbereik van de draaitabel in Excel: Om het brongegevensbereik van draaitabellen dynamisch te wijzigen, gebruiken we draaicaches. Deze paar regels kunnen elke draaitabel dynamisch bijwerken door het brongegevensbereik te wijzigen. Gebruik in VBA draaitabellenobjecten zoals hieronder weergegeven …

Voer macro uit als er een wijziging is aangebracht op het blad in het opgegeven bereik: In uw VBA-praktijken zou u de noodzaak krijgen om macro's uit te voeren wanneer een bepaald bereik of cel verandert. In dat geval gebruiken we de change-gebeurtenis om macro's uit te voeren wanneer een wijziging in een doelbereik wordt aangebracht.

Macro uitvoeren wanneer er een wijziging op het blad wordt aangebracht | Dus om uw macro uit te voeren wanneer het blad wordt bijgewerkt, gebruiken we de werkbladgebeurtenissen van VBA.

Eenvoudigste VBA-code om huidige rij en kolom te markeren met behulp van | Gebruik dit kleine VBA-fragment om de huidige rij en kolom van het blad te markeren.

De werkbladgebeurtenissen in Excel VBA | De werkbladgebeurtenis is erg handig wanneer u wilt dat uw macro's worden uitgevoerd wanneer een opgegeven gebeurtenis op het blad plaatsvindt.

Populaire artikels:

50 Excel-snelkoppelingen om uw productiviteit te verhogen | Word sneller in uw taak. Met deze 50 sneltoetsen werk je nog sneller in Excel.

De VERT.ZOEKEN-functie in Excel | Dit is een van de meest gebruikte en populaire functies van Excel die wordt gebruikt om waarde op te zoeken uit verschillende bereiken en bladen.

AANTAL.ALS in Excel 2016 | Tel waarden met voorwaarden met behulp van deze geweldige functie. U hoeft uw gegevens niet te filteren om een ​​specifieke waarde te tellen. Countif-functie is essentieel om uw dashboard voor te bereiden.

Hoe de SUMIF-functie in Excel te gebruiken? | Dit is een andere essentiële functie van het dashboard. Dit helpt u bij het optellen van waarden voor specifieke voorwaarden.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave