AutoFilter

  • Thread starter Thread starter GMet
  • Start date Start date
G

GMet

I got some good responses regarding the autofilter problem from Dave
Peterson and Debra Dalgleish.
================
to check for multiple criteria in the same column, you could use a
formula like:

=OR(D2="A",D2="B",D2="C")
Just to save typing:
=OR(D2={"A","B","C"})

Or list the multiple criteria on the worksheet, then check if the value
in the current row is in the list, e.g.:

=COUNTIF($K$2:$K$4,D2)>0
================
However, I don't know how to apply these. The formula I was using is:
Selection.Autofilter Field:=10, Criteria1:="A"

When I try to apply the "OR" example, I get an error.

I have a user form that has 5 checkboxes to select the filter for the
particular field.
How do I build the filter phrase in VBA?

GMet
 
Additional info:
I got a suggestion from Norman Jones to use Advanced Filter

The help says:
Range("Database").AdvancedFilter _
Action:=xlFilterInPlace, _
CriteriaRange:=Range("Criteria")I don't understand
CriteriaRange:=Range("Criteria")

I want to filter range(J10:J1000) if the range = "A" or "C" or "L" or "B" or
"T" based on what the user selects in my userform.

Seems like a simple thing but I don't know how to do it.

GMet
 
The mean to go to the next available column and enter the formula, then drag
fill it down the column.

for code it would be

Sub Tester2()
Dim rng As Range
Range("A4").CurrentRegion.Select
Set rng = Selection.Offset(0, Selection.Columns.Count).Resize(, 1)
rng.Formula = "=OR(" & "D" & rng(1).Row & "=""A"",D" & _
rng(1).Row & "=""B"",D" & _
rng(1).Row & "=""C"")"
rng(1).Value = "Header1"
Union(Selection, rng).Select
Selection.AutoFilter Field:=Selection.Columns.Count, Criteria1:=True
End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top