السلام عليكم
حسب ما فهمت ، ان كنت تريد ان يكون التصفية ديناميكية لا ثابته، يرجى إلقاء نظره علي هذا المرفق
Sub filter()
Dim filterRule As Variant
Dim FindString As String
Dim Rng As Range
Dim testRange As Range
Dim targetWorksheet As Worksheet
ActiveSheet.Range("$A$1:$E$10").AutoFilter Field:=1, Criteria1:=ActiveSheet.Range("M1").Value
FindString = ActiveSheet.Range("M1").Value
If Trim(FindString) <> "" Then
With ActiveSheet.Range("A:A")
Set Rng = .Find(What:=FindString, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
With ActiveSheet
.Cells(Rng.Row, 2).Select
Set testRange = .Range(.Cells(Rng.Row, 2), .Cells(Rng.Row, ActiveSheet.Range("N1").Value))
End With
testRange.Select
Selection.Copy
Selection.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Else
MsgBox "Nothing found with '" & FindString & "'"
End If
End With
End If
End Sub
Dynamic filtering.xlsm