السلام عليكم ورحمة الله
اخى الكريم جرب هذا الكود ..لو لك طلبات غير و اضحة فى مشاركتك الاولى يرجى توضيحها
لآن الملف البببانات فيه غير كافية سواء من ناحية عدد الفصل الواحد او النوع
بحيث نتمكن من اختبار الكود جيدا ..ارجو الاجابة بوضوح بعد التجربة ..اليك الكود
Sub AdClass()
Const K1 = "ذكر": Const K2 = ""
Dim Sh As Worksheet, ws As Worksheet
Dim Arr As Variant, Tmp As Variant
Dim LR As Long, p As Long, i As Long, ii As Long, j As Long
Dim Fsl As String, C As Range
Application.ScreenUpdating = False
Set Sh = Sheets("بيانات"): Set ws = Sheets("فصول")
ws.Range("D10:I49") = "": ws.Range("K10:P49") = ""
LR = Sh.Range("E" & Rows.Count).End(3).Row
Fsl = ws.Range("O7").Value
For Each C In Sh.Range("J10:J" & LR)
If C.Value = Fsl Then
p = p + 1
If p <= 40 Then
On Error Resume Next
ws.Range("D" & p + 9).Resize(, 6).Value = Sh.Range("D" & C.Row).Resize(, 6).Value
Else
ws.Range("K" & p - 31).Resize(, 6).Value = Sh.Range("D" & C.Row + 40).Resize(, 6).Value
End If
End If
Next
Application.ScreenUpdating =true
End Sub