السلام عليكم
الحمد لله تم العثور على حل بمساعدة أخ عزيز كل الشكر والتقدير له ولكل من ساهم بالمساعدة
سوف ارفق كود يوضع بالورقة الثانية الخاصة بإحضار البيانات ولكن يجيب إن يكون نطاق الخلاية عادي وليس ديناميكي.
شكرا للجميع
Private Sub Worksheet_Change(ByVal Target As Range)
Dim a, i As Long, ii As Long, k As Long
If Target.Cells.CountLarge > 1 Then Exit Sub
If Target.Address = "$I$2" Then
Application.ScreenUpdating = False
Range("A1").CurrentRegion.Offset(1).ClearContents
a = Worksheets(1).Range("A1").CurrentRegion.Offset(1).Value
ReDim b(1 To UBound(a, 1), 1 To UBound(a, 2))
For i = LBound(a, 1) To UBound(a, 1)
If a(i, 1) = Target.Value Then
k = k + 1
For ii = LBound(a, 2) To UBound(a, 2)
b(k, ii) = a(i, ii)
Next ii
End If
Next i
If k > 0 Then
Range("A2").Resize(k, UBound(b, 2)).Value = b
End If
Application.ScreenUpdating = True
End If
End Sub