Új hozzászólás Aktív témák

  • azopi74

    addikt

    válasz bsasa1 #26311 üzenetére

    Az egy megoldás lehet, ha a forrás munkalaphoz hozzárendeled ezt:

    Private Sub Worksheet_Calculate()

    Sheets("Munka1").PivotTables("PivotTable1").RefreshTable
    Sheets("Munka1").PivotTables("PivotTable2").RefreshTable

    End Sub

    Ahol PivotTable1 és PivoTable2 a frissítendő pivotok.

    Ennek persze feltétele, hogy olyan adat változzon, amivel van valami (akármilyen) kalkuláció az adott lapon, mert ekkor fut le a Worksheet_Calculate() (Pl beraksz valahova egy SZUM-ot az egész forrás range -re (ne aggódj, nem baj, ha nem csak számmezők vannak, attól még lefut a Calculate, ha a SUM függvény paraméterében szereplő range-ben akármi is változik)

    Persze lehet általánosabb megoldás is, vigyelheted az egész munkalapot, csak az szerintem felesleges erőforrás pazarlás lenne.

    Vagy ha rengeteg pivotod van, akkor csinálhatod úgy, hogy az összes Pivotok forrását figyeled ( .SourceData) property, de akkor a Workbook-hez kell hozzárendelned eseménykiszolgáló metódust. De ez eléggé overkill lenne szerintem.

    De miért nem használsz inkább függvényeket Pivot helyett ? :)
    Tudom, kicsit talán melósabb megcsinálni, mint összedobni pikk-pakk egy pivotot, de az viszont VBA kód nélkül is folyamatosan frissül, ha változik a forrás :D

Új hozzászólás Aktív témák