السلام عليكم .. جرب الكود التالي عله يفي بالغرض
Sub TransferNonAdjacentUsingArrays()
Dim ws As Worksheet
Dim sh As Worksheet
Dim kName As String
Dim arr As Variant
Dim temp As Variant
Dim i As Long
Dim j As Long
Dim p As Long
Set ws = Sheets("بيانات الطلاب")
Set sh = Sheets("سجل قيد الطلاب المستجدين")
kName = "مستجد"
Application.ScreenUpdating = False
arr = ws.Range("B17:T" & ws.Range("B" & Rows.Count).End(xlUp).Row).Value
temp = sh.Range("B11:P" & UBound(arr, 1)).Formula
For i = 1 To UBound(arr, 1)
If arr(i, 5) = kName Then
p = p + 1
temp(p, 2) = arr(i, 2)
temp(p, 4) = arr(i, 7)
temp(p, 5) = arr(i, 8)
temp(p, 6) = arr(i, 9)
temp(p, 10) = arr(i, 13)
temp(p, 11) = arr(i, 4)
temp(p, 12) = arr(i, 5)
temp(p, 14) = arr(i, 11)
temp(p, 15) = arr(i, 12)
End If
Next i
If p > 0 Then sh.Range("B11").Resize(p, UBound(temp, 2)).Value = temp
Application.ScreenUpdating = True
End Sub