Avatar billede lagunadk Novice
01. maj 2014 - 13:35 Der er 1 kommentar og
1 løsning

Automatisk filter til powerpivottable

Hey hey.

Jeg prøver at lave et automatisk filter til min powerpivottable via vba.

Det virker fint hvis jeg kun har 1 værdi. og også hvis jeg har flere værdier, men lister hver enkelt værdi i koden.

Herunder er forsøget:

Filter(1 to 11)'ne er der hvor min værdi til powerpivot filtret er.

Jeg har egentlig 2 spørgsmål,
1, hvordan undgår jeg at skulle lægge mine 11 forskellige værdier ind efter hinanden, altså filter(1), filter(2) osv?

2, og den vigtigste, hvordan kan den sidste linje læse dette?
    altså
ActiveSheet.PivotTables("PivotTable2").PivotFields( _
        "[5Ansvar].[AnsvarKey].[AnsvarKey]").VisibleItemsList = Array( _
        "[5Ansvar].[AnsvarKey].&[" & Filter(i) & "]")

Her virker det hvis jeg laver en linje for hver, en for filter(1), en for filter(2) osv.

Men ikke for Filter(i)

hvordan løses dette?


Sub 123()
Dim Filter(1 To 11) As String

Filter(1) = Sheets("Slicercellvalue").Range("D6").Value
Filter(2) = Sheets("Slicercellvalue").Range("D7").Value
Filter(3) = Sheets("Slicercellvalue").Range("D8").Value
Filter(4) = Sheets("Slicercellvalue").Range("D9").Value
Filter(5) = Sheets("Slicercellvalue").Range("D10").Value
Filter(6) = Sheets("Slicercellvalue").Range("D11").Value
Filter(7) = Sheets("Slicercellvalue").Range("D12").Value
Filter(8) = Sheets("Slicercellvalue").Range("D13").Value
Filter(9) = Sheets("Slicercellvalue").Range("D14").Value
Filter(10) = Sheets("Slicercellvalue").Range("D15").Value
Filter(11) = Sheets("Slicercellvalue").Range("D16").Value

For i = 1 To 11
Next i
    ActiveSheet.PivotTables("PivotTable2").CubeFields(1).EnableMultiplePageItems = _
        True
 
    ActiveSheet.PivotTables("PivotTable2").PivotFields( _
        "[5Ansvar].[AnsvarKey].[AnsvarKey]").VisibleItemsList = Array( _
        "[5Ansvar].[AnsvarKey].&[" & Filter(i) & "]")

End Sub
Avatar billede lagunadk Novice
01. maj 2014 - 15:12 #1
lille update:

Koden fungere og ser således ud:

Nogen ide til hvordan man kan samle de mange filtre? Det bliver jo hurtigt uoverskueligt :)


Sub Macro2()

Dim Filter(1 To 11) As String

Filter(1) = Sheets("Slicercellvalue").Range("D6").Value
Filter(2) = Sheets("Slicercellvalue").Range("D7").Value
Filter(3) = Sheets("Slicercellvalue").Range("D8").Value
Filter(4) = Sheets("Slicercellvalue").Range("D9").Value
Filter(5) = Sheets("Slicercellvalue").Range("D10").Value
Filter(6) = Sheets("Slicercellvalue").Range("D11").Value
Filter(7) = Sheets("Slicercellvalue").Range("D12").Value
Filter(8) = Sheets("Slicercellvalue").Range("D13").Value
Filter(9) = Sheets("Slicercellvalue").Range("D14").Value
Filter(10) = Sheets("Slicercellvalue").Range("D15").Value
Filter(11) = Sheets("Slicercellvalue").Range("D16").Value

For i = 1 To 11
Next i
    ActiveSheet.PivotTables("PivotTable2").PivotFields( _
        "[5Ansvar].[AnsvarKey].[AnsvarKey]").ClearAllFilters
       
    ActiveSheet.PivotTables("PivotTable2").PivotFields( _
        "[5Ansvar].[AnsvarKey].[AnsvarKey]").VisibleItemsList = Array( _
        "[5Ansvar].[AnsvarKey].&[" & Filter(1) & "]", _
        "[5Ansvar].[AnsvarKey].&[" & Filter(2) & "]", _
        "[5Ansvar].[AnsvarKey].&[" & Filter(3) & "]", _
        "[5Ansvar].[AnsvarKey].&[" & Filter(4) & "]", _
        "[5Ansvar].[AnsvarKey].&[" & Filter(5) & "]", _
        "[5Ansvar].[AnsvarKey].&[" & Filter(6) & "]", _
        "[5Ansvar].[AnsvarKey].&[" & Filter(7) & "]", _
        "[5Ansvar].[AnsvarKey].&[" & Filter(8) & "]", _
        "[5Ansvar].[AnsvarKey].&[" & Filter(9) & "]", _
        "[5Ansvar].[AnsvarKey].&[" & Filter(10) & "]", _
        "[5Ansvar].[AnsvarKey].&[" & Filter(11) & "]")
End Sub
Avatar billede lagunadk Novice
02. maj 2014 - 13:29 #2
Lukke denne, løb en anden vej.

Oprettede tabel til queryen, joinede denne på 'fact' med =RELATED()
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

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