Sub Macro1()
Dim O As Object 'déclare la variable O (Onglets)
Dim TON() As Variant 'déclare le tableau de variables TON (Tableau des Onglet Numériques)
Dim TOA() As Variant 'déclare le tableau de variables TOA (Tableau des Onglet Alphabétiques)
Dim X As Integer 'déclare la variable X
Dim Y As Integer 'déclare la variable Y
For Each O In Sheets 'boucle ssur tous les onglets du classeur
If IsNumeric(O.Name) = True Then 'condition : si le nom de l'onglet est numérique
ReDim Preserve TON(X) 'redimentionne le tableau TON
TON(X) = O.Name 'ajoute le nom de l'onglet au tableau des variables indéxées TON
X = X + 1 'incrémente X
Else 'sinon
ReDim Preserve TOA(Y) 'redimentionne le tableau TOA
TOA(Y) = O.Name 'ajoute le nom de l'onglet au tableau des variables indéxées TOA
Y = Y + 1 'incrémente X
End If 'fin de la condition
Next O 'prochaine onglet de la boucle
Call tri(TON, LBound(TON), UBound(TON)) 'tri alphabétique du tableau TON
Call tri(TOA, LBound(TOA), UBound(TOA)) 'tri alphabétique du tableau TOA
For i = 0 To UBound(TOA) 'boucle sur toutes les onglets du tableau TOA
Sheets(TOA(i)).Move After:=Sheets(Sheets.Count) 'place l'onglet en dernier
Next i 'prochain onglet du tableau
For i = 0 To UBound(TON) 'boucle sur toutes les onglets du tableau TON
Sheets(TON(i)).Move After:=Sheets(Sheets.Count) 'place l'onglet en dernier
Next i 'prochain onglet du tableau
End Sub
Sub tri(a As Variant, gauc As Integer, droi As Integer) ' Quick sort tiré du site de jacques BOISGONTIER : http://boisgontierjacques.free.fr/
Dim ref As String
Dim g As Integer
Dim d As Integer
Dim tmp As String
ref = a((gauc + droi) \ 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(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