الكود كامل بشرحه التفصيلى
علماً بأنه تم عمل معادلة فى العمود الخامس لتحديد القسم الذى سيرحل إليه الطالب حسب المواد التى سيدرسها
Sub ترحيل_أقسام()
''' متغيرات بعدد الصفحات المطلوب الترحيل اليها
Dim R As Integer, A As Integer, B As Integer, C As Integer, D As Integer
''' أسماء الصفحات المطلوب الترحيل اليها والمدى المطلوب مسح البيانات القديمة منه
Sheets("أدبى").Range("A2:DZ5000").ClearContents
Sheets("أدبى محول").Range("A2:DZ5000").ClearContents
Sheets("علمى علوم").Range("A2:DZ5000").ClearContents
Sheets("علمى رياضة").Range("A2:DZ5000").ClearContents
''' عدد الصفوف العليا في الصفحات المنقول اليها البيانات
A = 2: B = 2: C = 2: D = 2
Application.ScreenUpdating = False
''' بداية ونهاية صفوف الورقة المصدر
For R = 2 To 5000
'''''''''''''''''''''''''''''''''''''''''''''''''''
''تكرر الأسطر التالية لكل شيت يتم الترحيل فيه مع تغيير المتغيرات
''' رقم عمود المعيار وكلمة المعيار
If Cells(R, 5) = "أدبى" Then
''' عدد الأعمدة التى سيتم ترحيلها
Range("A" & R).Resize(1, 11).Copy
''' سيتم اللصق في هذا الشيت
Sheets("أدبى").Range("A" & A).PasteSpecial xlPasteValues
Application.CutCopyMode = False
A = A + 1
End If
If Cells(R, 5) = "أدبى محول" Then
Range("A" & R).Resize(1, 11).Copy
Sheets("أدبى محول").Range("A" & B).PasteSpecial xlPasteValues
Application.CutCopyMode = False
B = B + 1
End If
If Cells(R, 5) = "علمى علوم" Then
Range("A" & R).Resize(1, 11).Copy
Sheets("علمى علوم").Range("A" & C).PasteSpecial xlPasteValues
Application.CutCopyMode = False
C = C + 1
End If
If Cells(R, 5) = "علمى رياضة" Then
Range("A" & R).Resize(1, 11).Copy
Sheets("علمى رياضة").Range("A" & D).PasteSpecial xlPasteValues
Application.CutCopyMode = False
D = D + 1
End If
'If Cells(R, 4) = "5" Then
'Range("A" & R).Resize(1, 11).Copy
'Sheets("5").Range("A" & E).PasteSpecial xlPasteValues
'Application.CutCopyMode = False
'E = E + 1
' End If
'If Cells(R, 4) = "6" Then
'Range("A" & R).Resize(1, 11).Copy
'Sheets("6").Range("A" & F).PasteSpecial xlPasteValues
'Application.CutCopyMode = False
'F = F + 1
' End If
Next
For J = 1 To 4
Sheets(J).[a2] = 1
rrw = Sheets(J).[B3000].End(xlUp).Row
For Each cc In Sheets(J).Range("a3:B" & rrw)
cc.Value = cc.Offset(-1, 0) + 1
Next cc
Next J
MsgBox ("الحمد لله تـــم ترحيل الطلبة كل إلى قسمه")
For k = 1 To 4
y = Sheets(k).[B3000].End(xlUp).Row - 1
mssg = mssg & Chr(10) & Format(y, "00") & " Students to Sheet : " & k
Next k
MsgBox (" تم ترحيل عدد" & mssg)
Range("B1").Select
Application.ScreenUpdating = True
End Sub