Try blah (which call the function below it):
Sub blah()
ReDim ShtNames(1 To Sheets.Count)
'get the sheet names:
For i = 1 To Worksheets.Count
ShtNames(i) = Worksheets(i).Name
Next i
'sort the sheet names:
For j = 1 To UBound(ShtNames) - 1
For i = 1 To UBound(ShtNames) - 1
If Not aLessThanb(ShtNames(i), ShtNames(i + 1)) Then
temp = ShtNames(i)
ShtNames(i) = ShtNames(i + 1)
ShtNames(i + 1) = temp
End If
Next i
Next j
'Move the sheets:
For Each nm In ShtNames
Sheets(nm).Move after:=Sheets(Sheets.Count)
Next nm
End Sub
Function aLessThanb(a, b) As Boolean
x = Split(CStr(a), ".")
y = Split(CStr(b), ".")
For i = 0 To Application.Min(UBound(x), UBound(y))
Z = Application.Max(Len(x(i)), Len(y(i)))
x(i) = Format(x(i), String(Z, "0"))
y(i) = Format(y(i), String(Z, "0"))
Next i
aLessThanb = Join(x) < Join(y)
End Function