Filter data from an userform

Dear EE experts,

I'm trying to figure a way to filter data from an userform. I know that a filter can be added on any column, but what about doing this from an userform ?

Thanks for any help you can provide,

currentdb
LVL 1
currentdbAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
SiddharthRoutConnect With a Mentor Commented:
Ok Try this. I added a button to that userform. I entered 03 in the textbox and it worked.

Sid

Code Used

Private Sub CommandButton1_Click()
    On Error GoTo Whoa
    
    If Len(Trim(TextBox1.Text)) = 0 Then
        MsgBox "There is no value to filter"
        Exit Sub
    End If
    
    With Sheets("QUERY_FOR_GSL2").Range("$A$1:$BC$5")
        .Range("$A$1:$BC$5").AutoFilter Field:=15, Criteria1:=TextBox1.Text
        Unload Me
    End With
    Exit Sub
Whoa:
    msgbos Err.Description
End Sub

Open in new window

userform-sample-v7b.xlsm
0
 
SiddharthRoutCommented:
Do you have a sample file?

Sid
0
 
currentdbAuthor Commented:
Hi Sid,

I'm happy to see you around and yes I have a sample file.
If you go to ''Sheet 3'', I've already added a button ''Filter Acctopid''. This button opens the form ''UserForm 2''

Thanks

userform-sample-v7b.xlsm
0
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
SiddharthRoutCommented:
Ok What col does Acctopid represent in sheet QUERY_FOR_GSL2?

Sid
0
 
currentdbAuthor Commented:
It's column O
0
 
SiddharthRoutCommented:
Ok. On to it.

Sid
0
 
currentdbAuthor Commented:
If you need more explanations, let me know. Thanks.
0
 
SiddharthRoutCommented:
Oops, a small typo.

Just remove ".Range("$A$1:$BC$5")" from line 9

Sid
0
 
currentdbAuthor Commented:
Another small typo is on line 15 (msgbos Err.Description). Changed it to ''MsgBox   :)
0
 
SiddharthRoutCommented:
Thanks :)

Also one more thing.

In case you are unsure about the number of rows in Sheet "QUERY_FOR_GSL2" then use this code.

Private Sub CommandButton1_Click()
    Dim lastRow As Long
    
    On Error GoTo Whoa
    
    lastRow = Sheets("QUERY_FOR_GSL2").Range("A" & Rows.Count).End(xlUp).Row
    
    If Len(Trim(TextBox1.Text)) = 0 Then
        MsgBox "There is no value to filter"
        Exit Sub
    End If
    
    With Sheets("QUERY_FOR_GSL2")
        .Range("$A$1:$BC$" & lastRow).AutoFilter Field:=15, Criteria1:=TextBox1.Text
        Unload Me
    End With
    Exit Sub
Whoa:
    MsgBox Err.Description
End Sub

Open in new window


Sid
0
 
currentdbAuthor Commented:
Corrected it :)

If the number of rows change, I'll use the code you provided. For now, it's ok and I hope it will not go further more.

How I can add the other small part of code to go directly to sheet QUERY_FOR_GSL2 ? If I enter the Acctopid id number on Sheet 3, then click on the button, can it show the sheet QUERY_FOR_GSL2 without having to click on it ?
0
 
SiddharthRoutCommented:
Before this line

Exit Sub

Type this

Sheets("QUERY_FOR_GSL2").Activate

Sid
0
 
currentdbAuthor Commented:
It works perfectly! Thanks!

I'm going to open a new question on the same sample file I sumbitted earlier, but a little more complex.

Hold on as I open the question and post the link here, then close the actual question and award you full points.
0
 
currentdbAuthor Commented:
0
 
currentdbAuthor Commented:
Thanks again so much for your fast help :)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.