I've been trying to create sub, that helps filter list of goods by selecting few barcodes. I know I can do it manually, but it's very long and frustrating, since there are about ~2000 unique barcodes. I've recorded a Macro and found a few similar answers here, but i get an error "Run-time error '1004': Application defined or object-defined error' it stucks when PI.value gets assigned true or false: "PI.Visible = True; Pi.Visible = False".
Code:
Private Sub CommandButton1_Click()
Dim MyNames() As Variant Dim objPivotField As PivotField Dim i As Long Dim PI As PivotItem Set objPivotField = _ ActiveSheet.PivotTables("PivotTable1").PivotFields(Index:="[Prekė].[Barkodas].[Barkodas]") MyNames = Array("4770349225872", "4770033220077", "7622400004773") With ActiveSheet.PivotTables("PivotTable1").PivotFields(Index:="[Prekė].[Barkodas].[Barkodas]") For i = LBound(MyNames) To UBound(MyNames) For Each PI In .PivotItems If PI.Name = MyNames(i) Then PI.Visible = True Else PI.Visible = False End If Next PI Next i End With End Sub
And here's Macro that I recorded for filtering:
ActiveSheet.PivotTables("PivotTable1").PivotFields( _ "[Prekė].[Barkodas].[Barkodas]").VisibleItemsList = Array("", _ "[Prekė].[Barkodas].&[4750398000132]", "", "[Prekė].[Barkodas].&[4046234141238]", _ "[Prekė].[Barkodas].&[4770248342625]")

