Filter by Multiple Multi-Select List Boxes

Sean Chamberlin

New Member
Dec 6, 2005
I have a form that has several list boxes with multi-select enabled & several text boxes. The idea is to use a combination of entries across these list boxes & text boxes to filter a form. I then have 2 command buttons: 1 that clears all search criteria. The other executes the filter.

The code behind the button that clears the search criteria works perfectly. It is as follows:
Private Sub cmd_ClearSearch_Click()
Me.SearchServiceID = ""
Me.SearchServiceName = ""
Me![SearchProduct] = ""
Me![SearchServiceBillStatus] = ""
Me.Filter = ""
Me.FilterOn = False
End Sub

The code behind the button that executes the filter is where I have the problem. I can't figure out how to get it to apply a filter based on selections in ALL the list boxes & text boxes. Here is the code:

Private Sub cmd_Search_Click()

Dim Criteria As String
Dim i As Variant

Criteria = ""
For Each i In Me![SearchProduct].ItemsSelected
If Criteria <> "" Then
Criteria = Criteria & " OR "
End If
Criteria = Criteria & "[Product Name]='" _
& Me![SearchProduct].ItemData(i) & "'"
Next i

Dim hasOne As Boolean

hasOne = False

If (Not (Me.SearchServiceID = "" Or IsNull(Me.SearchServiceID))) Then
If (hasOne) Then
Criteria = Criteria & " And " & "[Service ID] Like '*" & Me.SearchServiceID & "*'"
Criteria = "[Service ID] Like '*" & Me.SearchServiceID & "*'"
hasOne = True
End If
End If

If (Not (Me.SearchServiceName = "" Or IsNull(Me.SearchServiceName))) Then
If (hasOne) Then
Criteria = Criteria & " And " & "[Service Name] Like '*" & Me.SearchServiceName & "*'"
Criteria = "[Service Name] Like '*" & Me.SearchServiceName & "*'"
hasOne = True

End If
End If

Me.Filter = Criteria
Me.FilterOn = True

I'd appreciate any advice or help. P.S. my searching across this site found examples of how to filter by a single multi-select list box, but not multiple. thanks.

Some videos you may like

Excel Facts

Pivot Table Drill Down
Double-click any number in a pivot table to create a new report showing all detail rows that make up that number

Watch MrExcel Video

Forum statistics

Latest member

This Week's Hot Topics

  • Finding issue in If elseif else with For each Loop
    Finding issue in If elseif else with For each Loop I have tried this below code but i'm getting in Y column filled with W005. Colud you please...
  • MsgBox Error
    Hi Guys, I have the below error show up when i try and run my macro in File1 but works fine if i copy and paste the same code into file2. [ATTACH...
    My Cell Format is [B]""0.00" Cr". [/B]But in the cell, it is showing 123.00 for editing. (123 is entry figure). (Data imported from other...
  • Show numbers nearly the same
    Is this possible. I have a number that can change very time eg 0.00001234 Then I have a lot of numbers 0.0000001, 0.0000002, 0.00000004...
  • Please i need your help to create formula
    I need a formula in cell B8 to do this >>if b1=1 then multiply ( cell b8) by 10% ,if b1=2 multiply by 20%,if=3 multiply by 30%. Thank you in...
  • Got error while adding column and filter
    Got error while adding column and filter In column Z has some like "Success" and "Error". I want to add column in AA if the Z cell value is...