Capturing Listbox Selections

R

Randy

Hi,
I've got two multi-select listboxes on a userform. The idea is that
listbox A contains all possible items and listbox B is a subset of A
defined by the user. I'm struggling with capturing the selected
values in A so that they can be copied to B. Here is my code:

With frmManageGroups.lbxA
For x = 0 To .ListCount - 1
If .Selected(x) = True Then
frmManageGroups.lbxB.AddItem .List(.ListIndex)
.Selected(x) = False
End If
Next
End With

The way that this is written, it only copies the last item selected in
listbox A. For example, if the listbox A contains the letters A,B,
and C as its items and the user selects A and C, my code copies the
letter C twice to listbox B instead of the letters A and C.

Can anybody help?
Thanks,
Randy
 
G

Guest

Not usre what you were really tryiing to do. this is how I prevent
duplicates from getting into a Listbox. I checd the with statement from A to
b. I'm checking to see if the item is already in the list box B

With frmManageGroups.lbxB
For x = 0 To .ListCount - 1
Found = False
If frmManageGroups.lbxB = .List(x) Then

Found = True
exit for
End If
Next
if found = False then
frmManageGroups.lbxB.AddItem
end if
End With
 
G

George Nicholson

frmManageGroups.lbxB.AddItem .List(.ListIndex)

You don't want to use ListIndex there. In a multi-select list box,
ListIndex is the item that has the *focus* in the UI, so if 2 items have
been selected, but C has the focus (whether selected or not!), you'll end up
with 2 C's.

frmManageGroups.lbxB.AddItem .List(x)


HTH,
 
R

Randy

You're right, George. I just needed (x) and not (.ListIndex).

Thanks to both of you for your advice.

Randy
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top