Forum

Selecting Data in a...
 
Notifications
Clear all

Selecting Data in a Userform Listbox

3 Posts
2 Users
0 Reactions
437 Views
(@maddunkin)
Posts: 8
Active Member
Topic starter
 

I am building an automated inventory for our warehouse. I have most of my bugs worked out, but I am having difficulty with getting the correct row selected in the Userform. When I click on the "Search" button, it will open the Searchform. This way I can perform a filtered search. When I see the data I want selected, I double click it and it will fill in the text box on the UserForm. It is also suppose to select the same data in the UserForm listbox. To achieve this, I used the code; 

Private Sub lstDisplay_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

UserForm.txtGFE = Me.lstDisplay.List(lstDisplay.ListIndex)
UserForm.txtDescription = Me.lstDisplay.List(lstDisplay.ListIndex, 1)
UserForm.txtPartNum = Me.lstDisplay.List(lstDisplay.ListIndex, 2)
UserForm.txtSerialNum = Me.lstDisplay.List(lstDisplay.ListIndex, 3)
UserForm.txtLocation = Me.lstDisplay.List(lstDisplay.ListIndex, 4)
UserForm.txtRemarks = Me.lstDisplay.List(lstDisplay.ListIndex, 5)
UserForm.cmbPlatform = Me.lstDisplay.List(lstDisplay.ListIndex, 6)

UserForm.lstDisplay.ListIndex = SearchForm.Results.ListIndex

End Sub

 

It works with some of the data, but not all of it. Any help or suggestions will be greatly appreciated.

 

V/R

Michael

 
Posted : 11/08/2022 11:39 am
(@catalinb)
Posts: 1937
Member Admin
 

Hi Michael,

This loop is not right:

For i = 0 To Range("H65356").End(xlUp).Row - 1
If Results.Selected(i) Then

UserForm.lstDisplay.Value = SearchForm.Results.Value

End If

Next i

It should loop through List items, not through sheet, because the results list will have just a subset of the sheet data, sheet rows will not be the same as listindex:

For i = 0 To Results.ListCount - 1

Next

In the search form, I suggest adding the row number of the match found in a new column, this way you will know where that listitem was found in sheet and you can use it later:

Results.List(RowCount, 8) = FirstCell.Row

 
Posted : 13/08/2022 1:37 am
(@maddunkin)
Posts: 8
Active Member
Topic starter
 

Thank you so much!! That did exactly what I need it to do. 

 

V/R

Michael

 
Posted : 16/08/2022 10:53 am
Share: