Tip: Other languages are Google-Translated. You can visit the English version of this link.
Log in
x
or
x
x
Register
x

or

How to quickly move items between two list boxes in Excel?

Have you ever tried to move the items from one list box to another one list boxes as you need as below screenshot shown? Here I will talk about this operation in Excel.

doc move items between list box 1 doc arrow right doc move items between list box 2

Move items between list boxes


Move items between list boxes


There is no built-in function can help you finish the job, but I have a VBA code can do a favor.

1. Firstly, you need to create a list of data which will be shown as the items in list boxes in a new sheet which called Admin_Lists.
doc move items between list box 3

2. Then select these data and go to the Name box to give them a name ItemList. See screenshot:
doc move items between list box 4

3. Then in a sheet which will contains the two list boxes, click Developer > Insert > List Box(Active X Control), and draw two list boxes. See screenshot:

doc move items between list box 5 doc arrow right doc move items between list box 6

If the Developer tab is hidden your ribbon, How to show/display developer tab in Excel 2007/2010/2013 Ribbon? this article will tell you how to show it.

4. Then click Developer > Insert > Command Button(Active X Control), and draw four buttons between two list boxes. See screenshot:

doc move items between list box 7 doc arrow right doc move items between list box 8

Now to rename the four command buttons with new names.

5. Select first command button, click Properties, and in the Properties pane, give a name BTN_moveAllRight to it, and type >> into the textbox beside Caption. See screenshot:
doc move items between list box 9

6. Repeat step 5 to rename last three command button with below names, and also type the different arrow into the captions. See screenshot:

BTN_MoveSelectedRight

BTN_moveAllLeft

BTN_MoveSelectedLeft

doc move items between list box 10 doc move items between list box 11 doc move items between list box 12

7. Right click at the sheet name which contains the list boxes and command buttons, and select View Code from the context menu. See screenshot:
doc move items between list box 13

8. Copy and paste below macro code to the Module script then save the code and close the Microsoft Visual Basic for Applications window. See screenshot

VBA: Move items between two list boxes

Private Sub Worksheet_Activate()
'UpdatebyExtendoffice20171117
    Dim xCell As Range
    Dim xRg As Range
    Set xRg = Sheets("Admin_Lists").Range("ItemList")
    Me.ListBox1.Clear
    Me.ListBox2.Clear
    With Me.ListBox1
        .LinkedCell = ""
        .ListFillRange = ""
        For Each xCell In xRg
            If xCell <> "" Then
                .AddItem xCell.Value
            End If
        Next xCell
    End With
    Me.ListBox1.MultiSelect = fmMultiSelectMulti
    Me.ListBox2.MultiSelect = fmMultiSelectMulti
End Sub

Private Sub BTN_MoveSelectedLeft_Click()
    Call moveSigle(Me.ListBox2, Me.ListBox1)
End Sub

Private Sub BTN_MoveSelectedRight_Click()
    Call moveSigle(Me.ListBox1, Me.ListBox2)
End Sub

Private Sub BTN_moveAllLeft_Click()
    Call moveAll(Me.ListBox2, Me.ListBox1)
End Sub

Private Sub BTN_moveAllRight_Click()
    Call moveAll(Me.ListBox1, Me.ListBox2)
End Sub

Sub moveAll(xListBox1 As Object, xListBox2 As Object)
    Dim I As Long
    For I = 0 To xListBox1.ListCount - 1
        xListBox2.AddItem xListBox1.List(I)
    Next I
    xListBox1.Clear
End Sub

Sub moveSigle(xListBox1 As Object, xListBox2 As Object)
    Dim I As Long
    For I = 0 To xListBox1.ListCount - 1
        If I = xListBox1.ListCount Then Exit Sub
        If xListBox1.Selected(I) = True Then
            xListBox2.AddItem xListBox1.List(I)
            xListBox1.RemoveItem I
            I = I - 1
        End If
    Next
End Sub

 doc move items between list box 14

9. Then go to another sheet then go back to the sheet contains the list boxes, now you can see the list data has been list in first one list box. And click at the command buttons to move the items between two list boxes.
doc move items between list box 15

Move selection

doc move items between list box 16 doc arrow right doc move items between list box 17

Move all

doc move items between list box 18 doc arrow right doc move items between list box 19


Excel Productivity Tools

Kutools for Excel - The Best Office Productivity Tool

  • Brings 300 powerful advanced features to Excel, enable you to do smarter, faster and better.
  • No longer need memorizing formulas and VBA codes, give your brain a rest from now on.
  • Become an Excel expert in 3 minutes, Complicated and repeated operations can be done in seconds, 
  • Reduce thousands of keyboard & mouse operations every day, say goodbye to occupational diseases now.
  • 110,000 highly effective people and 300+ world-renowned companies' choice.
  • 60-day full features free trial. 60-day money back guarantees. 2 years of free upgrade and support.

Office Tab - brings tabbed interface to Office, make your work much easier.

  • Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
  • Open and create multiple documents in new tabs of the same window, rather than in new windows.
  • Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Pius · 8 months ago
    My excel becomes unresponsive after running this code. what could be the problem?