list3

 

Sort Numbered Items In List Box/Combo Box


Sort Numbered Items In List Box/Combo Box

If you place the items File1.gif, File2.gif, File3.gif and File10.gif in
List Box or Combo Box, and set the Sorted property to True, they will
come up listed this way:

File1.gif
File10.gif
File2.gif
File3.gif

Instead of this way:

File1.gif
File2.gif
File3.gif
File10.gif

The source code below show you how to sort them properly.
This example will sort List Box, but it's work exactly the same with
Combo Box

Preparations

Add 1 Command Button and 1 List Box to your form.


Form Code

Sub ReSort(L As Control)
Dim P%, PP%, C%, Pre$, S$, V&, NewPos%, CheckIt%
Dim TempL$, TempItemData&, S1$

For P = 0 To L.ListCount - 1
S = L.List(P)
For C = 1 To Len(S)
V = Val(Mid$(S, C))
If V > 0 Then Exit For
Next
If V > 0 Then
If C > 1 Then Pre = Left$(S, C - 1)
NewPos = -1
For PP = P + 1 To L.ListCount - 1
CheckIt = False
S1 = L.List(PP)
If Pre <> "" Then
If InStr(S1, Pre) = 1 Then CheckIt = True
Else
If Val(S1) > 0 Then CheckIt = True
End If
If CheckIt Then
If Val(Mid$(S1, C)) < V Then NewPos = PP
Else
Exit For
End If
Next
If NewPos > -1 Then
TempL = L.List(P)
TempItemData = L.ItemData(P)
L.RemoveItem (P)
L.AddItem TempL, NewPos
L.ItemData(L.NewIndex) = TempItemData
P = P - 1
End If
End If
Next
Exit Sub
End Sub

Private Sub Command1_Click()
Call ReSort(List1)
End Sub


Private Sub Form_Load()
'add items to the List Box
List1.AddItem "File3.gif"
List1.AddItem "File2.gif"
List1.AddItem "File10.gif"
List1.AddItem "File1.gif"
End Sub