عليك بفتح مديول جديد ووضع هذا الكود به وربطه بزر
Sub xlSortSheets_Test()
Dim strWhich As String
Dim Which As Integer
strWhich = InputBox("لترتيب أسماء الأوراق تصاعدياً أدخل الرقم 1 " & vbNewLine & "لترتيب أسماء الأوراق تنازلياً أدخل الرقم -1 ", "تحديد طبيعة ترتيب أسماء الأوراق", "1")
If strWhich = vbNullString Then Exit Sub
If strWhich = "-1" Or strWhich = "1" Then
Which = strWhich
Call xlSortSheets(Which)
Exit Sub
End If
MsgBox "لم تدخل الأرقام المسموح بها لعمل الترتيب" & vbCrLf & "لم يتم ترتيب الأوراق", vbOKOnly
End Sub
Sub xlSortSheets(Optional Which As Integer = 1)
Dim I As Integer
Dim J As Integer
Dim SheetNames() As String
Dim temp As String
ReDim SheetNames(Sheets.Count)
For I = 1 To Sheets.Count
SheetNames(I) = Sheets(I).Name
Next I
For I = 1 To Sheets.Count - 1
For J = I + 1 To Sheets.Count
If (Which = -1 And SheetNames(I) < SheetNames(J)) _
Or _
(Which = 1 And SheetNames(I) > SheetNames(J)) Then
temp = SheetNames(I)
SheetNames(I) = SheetNames(J)
SheetNames(J) = temp
End If
Next J
Next I
temp = Sheets(Sheets.Count).Name
For I = Sheets.Count To 1 Step -1
Sheets(SheetNames(I)).Select
Sheets(SheetNames(I)).Move Before:=Sheets(temp)
temp = SheetNames(I)
Next I
Sheet1.Select
End Sub