• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Draaitabel met meerdere filters uit cellen

Status
Niet open voor verdere reacties.

ivoexcel

Gebruiker
Lid geworden
23 nov 2018
Berichten
100
Hallo allemaal,

In de bijlage een voorbeeld bestand. De filters in de draaitabel worden aangepast als cel J2 of J3 veranderd. nu wil ik graag dat de macro ook beide waardes meeneemt in de filter. In dit geval moet dus 2021 en 2020 zichtbaar worden in de draaitabel.

Hoe kan ik dit in deze macro toevoegen?
 

Bijlagen

  • Voorbeeld.xlsm
    19,2 KB · Weergaven: 15
IK heb het gevonden. Iets anders maar dit volstaat voor wat ik wil.


Code:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, Range("J2:J3")) Is Nothing Then Exit Sub
    Call Filter_pivot
    
End Sub


Sub Filter_pivot()

Dim rng As Range
Set rng = Range("J2:J3")
Dim ptb As PivotTable
Set ptb = Sheets("pivot").PivotTables("Draaitabel2")
Dim fld As PivotField
Set fld = ptb.PivotFields("Jaar")
           
    With fld

    Dim Item As PivotItem

    For Each Item In .PivotItems
     Item.Visible = True
    Next Item
     
    For Each Item In .PivotItems
        Item.Visible = False
        Dim cell As Range
            For Each cell In rng
                If Item.Caption = cell.Text Then
                    Item.Visible = True
                    Exit For
                End If
            Next cell
    Next Item

    End With

End Sub
 
ooit aan een slicer gedacht, is enorm gebruiksvriendelijk, gewoon aanklikken, eventueel in combinatie met de shift of de ctrl-toets
 

Bijlagen

  • Voorbeeld (5).xlsm
    30,2 KB · Weergaven: 16
Met VBA kan het ook. Wel even zorgen dat je met validatielijsten werkt zodat er geen verkeerde gegevens in J2:J3 ingevoerd kunnen worden.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("J2:J3")) Is Nothing And Target.Count = 1 Then
    c00 = Join(Application.Transpose(Range("J2:J3")))
    With PivotTables("Draaitabel2").PivotFields("Jaar")
      For Each it In .PivotItems
        it.Visible = IIf(Len(c00) > 1, InStr(c00, it), 1)
      Next it
    End With
  End If
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan