Sub Tri()
Dim nom As Name, n%, liste$(), tablo As Range, P As Range
'---liste des noms des tableaux et de leurs adresses---
For Each nom In ThisWorkbook.Names
If nom.Name Like "Tableau#*" Then
ReDim Preserve liste(1, n) 'base 0
liste(0, n) = nom.Name
liste(1, n) = Range(nom.Name).Address
n = n + 1
End If
Next
'---groupement des tableaux les uns en dessous des autres---
Application.ScreenUpdating = False
Set tablo = Range(liste(0, 0))
Set P = tablo
For n = 1 To UBound(liste, 2)
Range(liste(0, n)).Cut tablo(tablo.Rows.Count + 1, 1) 'couper-coller
Set tablo = Range(liste(0, n))
Set P = Range(P, tablo)
Next
'---tri et lettre en 1ère colonne---
P.Sort P(1, 2), xlAscending, Header:=xlNo 'tri croissant sur les noms
P.Columns(1) = "=IF(LEFT(RC[1])=LEFT(R[-1]C[1]),"""",UPPER(LEFT(RC[1])))"
P.Columns(1) = P.Columns(1).Value 'supprime les formules
'---remise en place des tableaux---
For n = 1 To UBound(liste, 2)
Range(liste(0, n)).Cut Range(liste(1, n)) 'couper-coller
Next
With P.Parent.UsedRange: End With 'actualise la barre de défilement verticale
End Sub