Sub Tri(ByRef Liste() As String, bASC As Boolean)
Dim i As Long, j As Long
Dim Temp As String
If bASC Then ' croissant
For i = LBound(Liste) To UBound(Liste) - 1
For j = i + 1 To UBound(Liste)
If Liste(i) > Liste(j) Then
Temp = Liste(j)
Liste(j) = Liste(i)
Liste(i) = Temp
End If
Next j
Next i
Else ' décroissant
For i = LBound(Liste) To UBound(Liste) - 1
For j = i + 1 To UBound(Liste)
If Liste(i) < Liste(j) Then
Temp = Liste(j)
Liste(j) = Liste(i)
Liste(i) = Temp
End If
Next j
Next i
End If
End Sub
'=================================
Sub Exemple_Utilisation()
Dim i As Long
Dim MyList(1 To 10) As String
MyList(1) = "1"
MyList(2) = "2"
MyList(3) = "4"
MyList(4) = "8"
MyList(5) = "7"
MyList(6) = "3"
MyList(7) = "9"
MyList(8) = "5"
MyList(9) = "0"
MyList(10) = "6"
Debug.Print "TABLEAU AVANT TRI :"
Debug.Print "==================="
For i = LBound(MyList) To UBound(MyList)
Debug.Print MyList(i)
Next i
Debug.Print ""
Debug.Print "TABLEAU APRèS TRI CROISSANT :"
Debug.Print "==================="
Call Tri(MyList, True)
For i = LBound(MyList) To UBound(MyList)
Debug.Print "/" & MyList(i) & "\"
Next i
Debug.Print ""
Debug.Print "TABLEAU APRèS TRI DéCROISSANT :"
Debug.Print "==================="
Call Tri(MyList, False)
For i = LBound(MyList) To UBound(MyList)
Debug.Print "/" & MyList(i) & "\"
Next i
End Sub
'=================================