• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 302
  • Last Modified:

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
0
currentdb
Asked:
currentdb
  • 8
  • 7
1 Solution
 
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
 
SiddharthRoutCommented:
Ok What col does Acctopid represent in sheet QUERY_FOR_GSL2?

Sid
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
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:
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:
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

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

  • 8
  • 7
Tackle projects and never again get stuck behind a technical roadblock.
Join Now