Sub TriFeuilles()
Dim i As Integer, ar
Dim RegExp As Object
Dim Ref As Double
Application.ScreenUpdating = False
ReDim ar(1 To Sheets.Count, 1 To 2)
For i = 1 To Sheets.Count
ar(i, 1) = ThisWorkbook.Sheets(i).Name
Next i
Set RegExp = CreateObject("VBScript.RegExp")
With RegExp
.MultiLine = False
.Global = False
.IgnoreCase = True
.Pattern = "(Note )(\d+(\.\d+)*)"
On Error Resume Next
For i = 1 To UBound(ar, 1)
If .test(ar(i, 1)) Then
Ref = WBSSortKey2(Split(.Execute(ar(i, 1))(0), " ")(1))
ar(i, 2) = .Replace(ar(i, 1), "$1" & Ref)
Else
ar(i, 2) = "ZZZZ" & ar(i, 1)
End If
Next i
End With
'Trier les feuilles
Sort2DVert ar, 2, "A"
For i = 1 To UBound(ar, 1)
Sheets(ar(i, 1)).Move before:=Sheets(i + 1)
Next i
Application.ScreenUpdating = True
End Sub