Avatar billede heman.dk Nybegynder
21. februar 2012 - 13:32

Opdatering af pivottabeller med kriterier

Jeg har et problem og jeg synes ikke jeg kan finde andre her på eksperten eller på Google der nævner det.

Problemet opstår, når jeg løber alle pivottabeller igennem for at sætte nogle filtre. Hvis et felt findes i pivottabellen, så sætter jeg et filter. Problemet er nu, at der ikke er noget data vist i pivottabellerne; man bliver nød til at åbne et af filtrene manuelt og så trykke ok (uden at ændre noget) og så vises de uden problemer.

Det skal siges, at jeg bruger følgende formel i Name Manageren til at definere dataområdet for pivottabellen:
=OFFSET('AP Pivotdata'!$A$1;0;0;COUNTA('AP Pivotdata'!$A:$A);24)

Nogen der har et forslag?

På forhånd tak.

Hilsen Henrik Larsen

Kode:

    For Each ActiveWorksheet In ThisWorkbook.Worksheets
        For Each pt In wsActiveWorksheet.PivotTables
            For Each pf In pt.PivotFields
                If pf.Orientation = xlPageField Then
                    Select Case UCase(pf.Name)
                        Case UCase("Company Code")
                            If InStr(1, UCase(pt.SourceData), "AR") > 0 Then
                                If ThisWorkbook.Worksheets(Sheet36.Name).Range("InputARCompanyCode") <> "" Then
                                    PivotFieldFilter = ThisWorkbook.Worksheets(Sheet36.Name).Range("InputARCompanyCode")
                                    pf.CurrentPage = PivotFieldFilter
                                Else
                                    pf.CurrentPage = "(All)"
                                End If
                            End If
                            If InStr(1, UCase(pt.SourceData), "AP") Then
                                If ThisWorkbook.Worksheets(Sheet36.Name).Range("InputAPCompanyCode") <> "" Then
                                    PivotFieldFilter = ThisWorkbook.Worksheets(Sheet36.Name).Range("InputAPCompanyCode")
                                    pf.CurrentPage = PivotFieldFilter
                                Else
                                    pf.CurrentPage = "(All)"
                                End If
                            End If
                        Case UCase("Posting period")
                            If ThisWorkbook.Worksheets(Sheet36.Name).Range("InputPostingPeriod") <> "" Then
                                PivotFieldFilter = ThisWorkbook.Worksheets(Sheet36.Name).Range("InputPostingPeriod")
                                pf.CurrentPage = PivotFieldFilter
                            Else
                                pf.CurrentPage = "(All)"
                            End If
                    End Select
                End If
            Next pf
        Next pt
    Next ActiveWorksheet
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester