Bonjour BsAlv ,
Pour s'amuser , en se basant sur ta dernière idée et sans feuille auxiliaire :
Sub TrierA()
Trier1 xlAscending
End Sub
Sub TrierD()
Trier1 xlDescending
End Sub
Sub Trier1(Order)
Dim col&, x, Arr, n&, i&, j&
If Worksheets.Sheets.Count <= 1 Then Exit Sub
Application.ScreenUpdating = False
For j = 1 To Worksheets.Count
With Worksheets(j)
col = .UsedRange.Column + .UsedRange.Columns.Count
If col <= Columns.Count Then
For Each x In ThisWorkbook.Sheets: n = n + 1: .Cells(n, col) = x.Name: Next
.Cells(1, col).Resize(n).Sort key1:=.Cells(1, col), order1:=Order, MatchCase:=False, Header:=xlNo
Arr = .Cells(1, col).Resize(n): .Columns(col).Delete
For i = 1 To n: Sheets(Arr(i, 1)).Move after:=Sheets(n): Next i
Exit For
End If
End With
Next j
If j > Worksheets.Count Then MsgBox "Le tri a échoué (aucune colonne vide disponible).", vbCritical
End Sub