FREE Excel STUFF
SearchSearch Excel Content
Excel Help. Popular
NEW! Multiple Excel Search & Links
Excel Formulas
Excel Macros
Excel Newsletter
PRODUCTS
Up to $139.00 FREE!
Categories & SearchSearch for software
Excel Templates
Excel Add-ins
Excel Training
More....
OTHER
Excel Development

Move ListBox Items Up & Down


NEW! More Books..
Add to Google advanced search! Free Help!

Add Excel Answers & Search To Your Google Toolbar Details

Current Special! Complete Excel Excel Training Course for Excel 97 - Excel 2003, only $145.00. $59.95 Instant Buy/Download, 30 Day Money Back Guarantee & Free Excel Help for LIFE!

Back to: Excel VBA . Got any Excel/VBA Questions? Free Excel Help

Change Order Of List Box Values

Download Example

Add 2 CommandButtons to your UserForm and Name them MoveUp and MoveDown. Then, use the RowSource Property of the Multi Column ListBox to fill the ListBox with a Named Range. Ensure this named range has headings BUT are no included in the range name definition. Set the ColumnHeads Property of the ListBox to True and the ColumnCount to as many columns as the named range has Columns. Set the ColumnWidths as needed.

Private Sub MoveDown_Click() 
    Dim lCurrentListIndex As Long 
    Dim strRowSource As String 
    Dim strAddress As String 
    Dim strSheetName As String 
     
     
    With ListBox1 
        If .ListIndex < 0 Or .ListIndex = .ListCount - 1 Then Exit Sub 
        lCurrentListIndex = .ListIndex + 1 
        strRowSource = .RowSource 
        strAddress = Range(strRowSource).Address 
        strSheetName = Range(strRowSource).Parent.Name 
        .RowSource = vbNullString 
        With Range(strRowSource) 
            .Rows(lCurrentListIndex).Cut 
            .Rows(lCurrentListIndex + 2).Insert Shift:=xlDown 
        End With 
         Sheets(strSheetName).Range(strAddress).Name = strRowSource 
        .RowSource = strRowSource 
        .Selected(lCurrentListIndex) = True 
    End With 
     
End Sub 
 
Private Sub MoveUp_Click() 
    Dim lCurrentListIndex As Long 
    Dim strRowSource As String 
    Dim strAddress As String 
    Dim strSheetName As String 
     
     
    With ListBox1 
        If .ListIndex < 1 Then Exit Sub 
        lCurrentListIndex = .ListIndex + 1 
        strRowSource = .RowSource 
        strAddress = Range(strRowSource).Address 
        strSheetName = Range(strRowSource).Parent.Name 
        .RowSource = vbNullString 
        With Range(strRowSource) 
            .Rows(lCurrentListIndex).Cut 
            .Rows(lCurrentListIndex - 1).Insert Shift:=xlDown 
        End With 
        Sheets(strSheetName).Range(strAddress).Name = strRowSource 
        .RowSource = strRowSource 
        .Selected(lCurrentListIndex - 2) = True 
    End With 
     
End Sub

Download Example

Excel Dashboard Reports & Excel Dashboard Charts 50% Off

Special! Free Choice of Complete Excel Training Course OR Excel Add-ins Collection on all purchases totaling over $64.00. ALL purchases totaling over $150.00 gets you BOTH! Purchases MUST be made via this site. Send payment proof to special@ozgrid.com 31 days after purchase date.



Instant Download and Money Back Guarantee on Most Software

Excel Trader Package Technical Analysis in Excel With $139.00 of FREE software!

Add to Google Search Tips FREE Excel Help

Microsoft ® and Microsoft Excel ® are registered trademarks of Microsoft Corporation. OzGrid is in no way associated with Microsoft