[COLOR="DarkSlateGray"][B]Sub toto()
Dim sL(), s As String, i As Long, j As Long, k As Long
ReDim sL(1 To 2, 1 To Sheets.Count)
For i = 1 To UBound(sL, 2)
sL(1, i) = normalise(Sheets(i).Name)
sL(2, i) = Sheets(i).Name
j = 0
Do While 47 < Asc(Mid$(sL(1, i), j + 1)) And Asc(Mid$(sL(1, i), j + 1)) < 58
j = j + 1
Loop
If j Then sL(1, i) = String$(32 - j, "0") & sL(1, i) Else sL(1, i) = String$(32, "9") & sL(1, i)
Next i
With Application
.ScreenUpdating = False: .Calculation = xlManual: .EnableEvents = False
For i = 1 To UBound(sL, 2)
k = i
s = sL(1, i)
For j = 1 To UBound(sL, 2)
If sL(1, j) > s Then s = sL(1, j): k = j
Next j
sL(1, k) = ""
Sheets(sL(2, k)).Move before:=Sheets(1)
Next i
.EnableEvents = True: .Calculation = xlAutomatic: .ScreenUpdating = True
End With
End Sub
Function normalise(s As String) As String
Dim oL, nL, i As Long, j As Long
oL = Array("Š", "Œ", "Ž", "š", "œ", "ž", "Ÿ", "*", "ª", "²", "³", "¹", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "Ù", "Ú", "Û", "Ü", "Ý")
nL = Array("S", "OE", "Z", "S", "OE", "Z", "Y", " ", "A", "2", "3", "1", "A", "A", "A", "A", "A", "A", "AE", "C", "E", "E", "E", "E", "I", "I", "I", "I", "D", "N", "O", "O", "O", "O", "O", "U", "U", "U", "U", "Y")
s = UCase(s)
For i = 1 To Len(s)
For j = 0 To UBound(oL)
If Mid$(s, i, 1) = oL(j) Then normalise = normalise & nL(j): Exit For
Next j
If j > UBound(oL) Then normalise = normalise & Mid$(s, i, 1)
Next i
End Function[/B][/COLOR]