Salut

Suite à une besoin, je propose ici une amélioration de tri de combobox, ListBox, ... tout type de composant ayant une propriété List() structuré de la même façon que les combobox et listbox donc.
D'ailleurs je n'ai pas testé mais en modifiant un peu, ça fonctionnerait peut-être avec un tableau variant issue d'une plage de range... j'essaierai demain, je suis cuit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Dim tab_a as Variant
Tab_A= Feuil1.range("A1:B10").value
Tri_Range....
Bref
Tout est dans les commentaires

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
'Adapté à partir de
'https://excel.developpez.com/faq/index.php?page=OleObject#TriAlphaComboBox
Sub Tri_Box(Box As Object, Optional NumeroColonne As Integer = 0, Optional OrdreDeTri As XlSortOrder = xlAscending, Optional Compare As VbCompareMethod = vbTextCompare)
'Permet de trier tout composant ayant un membre List()
'NumeroColonne pour choisir la colonne utilisée pour le tri
'OrdreDeTri pour choisir croissant ou décroissant
'Compare pour tenir compte de la casse (vbBinaryCompare) ou non (vbTextCompare)
 
    Dim i As Integer, j As Integer
    Dim iCol As Integer
    Dim tabTemp As Variant
    'Tri le contenu du Box
    With Box
        For i = 0 To .ListCount - 1
            For j = 0 To .ListCount - 1
                'On prend en compte l'ordre de tri et le type de comparaison
                If StrComp(.List(j, NumeroColonne), .List(i, NumeroColonne), Compare) = IIf(OrdreDeTri = xlAscending, 1, -1) Then
                    tabTemp = .List
                    For iCol = 0 To UBound(tabTemp, 2)
                        'On remplace les valeurs null par du vide ""
                        .List(i, iCol) = IIf(IsNull(.List(j, iCol)), "", .List(j, iCol))
                        .List(j, iCol) = IIf(IsNull(tabTemp(i, iCol)), "", tabTemp(i, iCol))
                    Next
                End If
            Next j
        Next i
    End With
End Sub
++
Qwaz