devxlogo

Switch a Combo Box Sort from Alpha to Number

Switch a Combo Box Sort from Alpha to Number

Don’t forget to turn off the .sorted property on the combo box before calling!

 ResortCboFromAlphaToNum cboAbcPublic Sub ResortCboFromAlphaToNum(cc As ComboBox)    'resorts given combobox from alpha sort (usual) to numeric sort    'e.g.  1,11,2,22 >> 1,2,11,22    Dim ListStrArr() As String    Dim ItemDataLngArr() As Long    Dim tmpLng As Long    Dim tmpStr As String    Dim i As Integer    Dim j As Integer    Dim ListCountInt As Integer    Dim LargestValLng As Long    Dim ArrayPosInt As Integer    ListCountInt = cc.ListCount    If ListCountInt = 0 Then Exit Sub    ReDim ListStrArr(ListCountInt - 1)    ReDim ItemDataLngArr(ListCountInt - 1)    For i = 0 To ListCountInt - 1        ListStrArr(i) = cc.List(i)        ItemDataLngArr(i) = cc.ItemData(i)    Next    'note, sorting operation is MUCH faster against arrays than with combo object    'uses exchange sort, not optimal, but adequate    For i = 0 To ListCountInt - 1        LargestValLng = 0        For j = i To ListCountInt - 1            If LargestValLng <= val(ListStrArr(j)) Then                LargestValLng = val(ListStrArr(j))                'swap                tmpStr = ListStrArr(i)                tmpLng = ItemDataLngArr(i)                ListStrArr(i) = ListStrArr(j)                ItemDataLngArr(i) = ItemDataLngArr(j)                ListStrArr(j) = tmpStr                ItemDataLngArr(j) = tmpLng            End If        Next 'j    Next 'i    For i = 0 To ListCountInt - 1        cc.List(i) = ListStrArr(ListCountInt - 1 - i)        cc.ItemData(i) = ItemDataLngArr(ListCountInt - 1 - i)    Next    cc.RefreshEnd Sub
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist