Solved

Find listindex position in listbox

Posted on 2013-05-10
5
906 Views
Last Modified: 2013-05-12
I've got a question regarding listboxes. In this example, I've populated a listbox with a range (customers) from a worksheet.

How do I find the listindex position of a customer (column 2)?
I know that, for example "Robert" is (by looking at the listbox) in listindex position 2. Is there a way to do this programmatically?

Thanks

Massimo

screengrab of the userformlistbox.xlsm
0
Comment
Question by:Massimo Scola
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
5 Comments
 
LVL 47

Assisted Solution

by:Martin Liss
Martin Liss earned 50 total points
ID: 39157227
Private Sub cboCustomers_Click()
 txtList.Text = cboCustomers.ListIndex
End Sub

Open in new window

0
 

Author Comment

by:Massimo Scola
ID: 39157259
Hello Martin
That works but I should have used another userform instead.

Let's assume the name needs to be searched in column 2 of the listbox, how do you do that? I've changed the userform a bit. new userform - with textbox instead of comboboxlistbox2.xlsm
0
 
LVL 81

Expert Comment

by:byundt
ID: 39157295
For the first example, you could use this code to identify the ListIndex and select the name chosen in the combobox:
Private Sub cboCustomers_Change()
Dim i As Integer
With Me.lstCustomers
    For i = 1 To .ListCount
        If .Column(1, i - 1) = Me.cboCustomers.Value Then
            Me.txtList.Value = i - 1
            Exit For
        End If
    Next
End With
End Sub

Private Sub cmdClick_Click()
If txtList.Value <> "" Then Me.lstCustomers.Selected(txtList.Value) = True
End Sub

Open in new window

Brad
0
 
LVL 81

Accepted Solution

by:
byundt earned 450 total points
ID: 39157306
And for the second workbook, the code would be:
Private Sub txtName_Change()
Dim i As Integer
With Me.lstCustomers
    For i = 1 To .ListCount
        If .Column(1, i - 1) = txtName.Value Then
            Me.txtList.Value = i - 1
            Exit For
        End If
    Next
End With
End Sub

Private Sub cmdClick_Click()
If txtList.Value <> "" Then Me.lstCustomers.Selected(txtList.Value) = True
End Sub

Open in new window

0
 

Author Closing Comment

by:Massimo Scola
ID: 39159925
Hello Brad
Thanks a lot for your help.

Massimo
0

Featured Post

Online Training Solution

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action. Forget about retraining and skyrocket knowledge retention rates.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article will guide you to convert a grid from a picture into Excel format using Microsoft OneNote and no other 3rd party application.
Do you use a spreadsheet like Microsoft's Excel?  Have you ever wanted to link out to a non excel file on your computer or network drive?  This is the way I found to do it!
This Micro Tutorial will demonstrate on a Mac how to change the sort order for chart legend values and decrpyt the intimidating chart menu.
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa‚Ķ

733 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question