Option Explicit
Sub Channel_Filter()
Dim arrCriteria As Variant
Dim LR As Long
Dim ChkBox As Excel.CheckBox
ActiveWorkbook.Names.Add Name:="Retail", RefersTo:= _
"=OFFSET(Channels!$A$2,0,0,(COUNTA(Channels!$A:$A)-1),1)"
ActiveWorkbook.Names.Add Name:="Indirect", RefersTo:= _
"=OFFSET(Channels!$B$2,0,0,(COUNTA(Channels!$B:$B)-1),1)"
ActiveWorkbook.Names.Add Name:="Business", RefersTo:= _
"=OFFSET(Channels!$C$2,0,0,(COUNTA(Channels!$C:$C)-1),1)"
With Sheets("Channels")
.Range("F1").Value = "Filter Criteria"
LR = .Range("F" & .Rows.Count).End(xlUp).Row + 1
.Range("F2:F" & LR).ClearContents
End With
With Sheets("RunReport")
For Each ChkBox In .CheckBoxes
If ChkBox.Value = 1 Then
With Sheets("Channels")
LR = .Range("F" & .Rows.Count).End(xlUp).Row + 1
.Range(ChkBox.Caption).Copy
.Range("F" & LR).PasteSpecial (xlPasteValues)
End With
End If
Next ChkBox
ActiveWorkbook.Names.Add Name:="FilterCriteria", RefersTo:= _
"=OFFSET(Channels!$F$2,0,0,(COUNTA(Channels!$F:$F)-1),1)"
End With
ReDim arrCriteria(0)
arrCriteria = Application.Transpose(Range("FilterCriteria"))
Sheets("DataFeed").ListObjects("Table_Tablix1").Range.AutoFilter Field:=16, Criteria1:=Array(arrCriteria), Operator:=xlFilterValues
'Below are the autofilters for each channel. They are commented out until a connection is made to their corsponding checkbox.
'RETAIL range_to_filter.AutoFilter Field:=16, Criteria1:=Array("A020", "A040", "A050", "A090", "A100", "A110", "A130", "A140", "B100", "B200", "B300", "B400", "B500", "B600", "B700", "B800", "B900", "C200", "C300", "C400", "E100", "E200", "F200", "F300", "F400", "F500", "K100", "K200", "K400", "K800", "L200", "N100", "N200", "N300", "P100"), Operator:=xlFilterValues
'Indirect range_to_filter.AutoFilter Field:=16, Criteria1:=Array("Z700", "Z705", "Z708", "Z710", "Z711, "Z712", "Z716", "Z718", "Z721", "Z722", "Z724", "Z726", "Z727", "Z728", "Z730", "Z732", "Z734", "Z735", "Z740", "Z741", "Z742"), Operator:=xlFilterValues
'BUSINESS range_to_filter.AutoFilter Field:=16, Criteria1:=Array("001", "0160", "1014", "1019", "1024", "1026", "1136", "1183", "1362", "2016", "2017", "2702", "2703", "3261", "3262", "3267", "3333", "3342", "4013", "4134", "4151", "5012", "5100", "5101", "5109", "6003", "6005", "6017", "6104"), Operator:=xlFilterValues
End Sub
Bookmarks