السلامعليكم
جزاكم الله خيرا
بالنسبة لطلبك جرب الكود التالي وبامكانك تغير اماكن الاعمدة من الكود
Const wName As String = "Book1"
Const ContColumn As Integer = 5
Const Txt As String = "الأول الابتدائي-الثاني الابتدائي-الثالث الابتدائي-الرابع الابتدائي-الخامس الابتدائي-السادس الابتدائي"
Sub kh_Trheel()
Dim xl As New Excel.Application
Dim wo As Workbook
Dim sh As Worksheet
Dim Ary()
Dim Lr As Long, r As Long, i As Long
On Error Resume Next
Range("A1").Resize(Cells(Rows.Count, "A").End(xlUp).Row, ContColumn).ClearContents
Set wo = xl.Workbooks.Open(ThisWorkbook.Path & "\" & wName & ".xls")
For Each sh In wo.Worksheets
With sh
Lr = .Cells(Rows.Count, "Q").End(xlUp).Row
For r = 23 To Lr
i = i + 1
ReDim Preserve Ary(1 To ContColumn, 1 To i)
Ary(1, i) = i
Ary(2, i) = .Cells(r, "Q").Value
Ary(3, i) = .Range("C6").Value
Ary(4, i) = .Range("C14").Value
Ary(5, i) = WorksheetFunction.Match(CStr(.Range("C6")), Split(Txt, "-"), 0)
Next
End With
Next
If i Then
Range("A1").Resize(i, ContColumn).Value = WorksheetFunction.Transpose(Ary)
End If
1:
If Not wo Is Nothing Then wo.Close False
Set wo = Nothing
Erase Ary
On Error GoTo 0
End Sub
تحياتي