Hirdetés

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

  • Fferi50

    Topikgazda

    válasz Törpella #26515 üzenetére

    Szia!

    Elnézést, amiért csak most válaszolok, de vannak különböző "tavaszi" elfoglaltságaim is.
    Ahogy én elnézem, itt nem szűrőről van szó, hanem a megfelelő rowlabel (sorcimke9 kiválasztásáról.
    Ezt a következőképpen oldhatod meg (a kód általános, aktualizálhatod magadra, a számok helyére a mező nevét is írhatod természetesen):

    Sheets(2).Pivottables(1).Pivotfields(1).Pivotitems(kiválaszott).visible=true
    For each pi in Sheets(2).Pivottables(1).Pivotfields(1).Pivotitems:pi.visible=pi.caption=kiválasztott: Next

    Ezután az adott pivottáblában már csak a kiválasztott tételed fog látszani.
    Az egész táblát (már az eredményt) átmásolhatod egy másik helyre a következő kóddal:
    Sheets(2).Pivottables(1).Tablerange1.Copy Destination:=Sheets(3).Range("A1")

    Ha tudod, hogy hány soros a kiválasztott tételed, akkor
    Sheets(2).Pivottables(1).Tablerange1.Rows("3:5").Copy Destination:=Sheets(3).Range("A1")

    Viszont, ha csak az utóbbi eredmény szükséges, akkor nem kell "szűrni" a pivottáblát. Legyen minden sorcimkéje látható.
    A kiválasztottat megtalálod a következőképpen:
    set kiv=Sheets(2).Pivottables(1).Tablerange1.Find(what:=kiválasztott,lookin:=xlvalues,lookat:=xlwhole)
    másolása:
    sheets(2).Pivottables(1).Tablerange1.Rows(kiv.row-sheets(2).Pivottable(1).Tablerange1.Cells(0,1).Row).Copy Destination:=Sheets(3).Range("A1")

    Még egy megjegyzés: Úgy gondolom, szerencsésebb lenne, ha a lekérdező formon mutatnád a listát, hogy miből lehet választani, mert akkor biztosan nem lesz hibás találat. Ehhez egy dropdown vagy listbox control kell, amit a pivotokból tudsz feltölteni a kiválasztható értékekkel.

    Mivel úgy látom elég sok rowlabel van és azok mind "alá vannak rendelve" a fő labelnek, természetesen a másoladó sorok száma is aszerint alakul, ahány label van.

    Üdv.

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