I have two listboxes and am trying to add items from List 1 to List 2, and then be able to remove multiple items from List 2 at once. Note that List 1 stays stagnant (this is how it is supposed to be).
I have the adding items working right:
'Add the selected items to List 2
Dim i As Integer
If lst1.ItemsSelected.Count > 0 Then
i = 0
While i < lst1.ListCount
If lst1.Selected(i) Then
lst2.AddItem (lst1.ItemData(i) & ";" & lst1.Column(1, i) & ";")
lst1.Selected(i) = False
End If
i = i + 1
Wend
End If
However, when I try to remove the items from List 2 in a similar way, it only recognises the first selected item as selected and skips over the other items that I have selected. This is the problem. Here is my code:
'Remove the selected items from List 2
Dim i As Integer
If lst2.ItemsSelected.Count > 0 Then
i = lst2.ListCount - 1
While i >= 0
If lst2.Selected(i) Then
lst2.RemoveItem (i)
lst2.Selected(i) = False
End If
i = i - 1
Wend
End If
How can I get this working correctly?
Multiple items are selected by holding down Shift and choosing them with the mouse, or by holding down Shift and pressing an arrow key to extend the selection from the previously selected item to the current item.
This list has various inputs to select from and allows selecting multiple options at once. A list box can be inserted on a UserForm by choosing the list box option. List boxes use named ranges having certain values. The purpose of using a list box is to display a list of values that users can choose from.
As far as I can tell, as soon as you remove one item, all items become unselected, so:
Dim itm As Variant
Dim srem As String
Dim asrem As Variant
For Each itm In lst2.ItemsSelected
srem = srem & "," & itm
Next
asrem = Split(Mid(srem, 2), ",")
For i = UBound(asrem) To 0 Step -1
lst2.RemoveItem lst2.ItemData(asrem(i))
Next
Note also that this is Access and you are dealing with a value list, so Replace on the text of Row Source will also work.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With