Sub tri(a, gauc, droi) ' Quick sort croissant de J. Boisgontier adapté
ref = a(2, (gauc + droi) \ 2)
g = gauc: d = droi
Do
Do While a(2, g) < ref: g = g + 1: Loop
Do While ref < a(2, d): d = d - 1: Loop
If g <= d Then
Temp = a(1, g): a(1, g) = a(1, d): a(1, d) = Temp
Temp = a(2, g): a(2, g) = a(2, d): a(2, d) = Temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub
Sub OrdonneSh()
Dim Tb()
nb = 0
For Each Wsh In ThisWorkbook.Worksheets
If UCase(Wsh.Name) Like "CLASS*" Then
nb = nb + 1
ReDim Preserve Tb(1 To 2, 1 To nb)
part = Split(Wsh.Name, " ")
Tb(1, nb) = Wsh.Name
If UBound(part) = 1 Then
Tb(2, nb) = CInt(part(1))
End If
End If
Next
Call tri(Tb, 1, UBound(Tb, 2))
ThisWorkbook.Worksheets(Tb(1, 1)).Move Before:=ThisWorkbook.Worksheets(1)
For i = 2 To UBound(Tb, 2)
ThisWorkbook.Worksheets(Tb(1, i)).Move After:=ThisWorkbook.Worksheets(Tb(1, i - 1))
Next
Application.Goto ThisWorkbook.Worksheets(Tb(1, 1)).[A1]
End Sub