جرب هذا الكود
CODE
Option Explicit
Sub FIND_ALL()
Dim D As Worksheet
Dim S As Worksheet
Dim My_rg As Range
Dim m%: m = 5
Dim T%
Dim NEW_RO%
Dim Curt_rg 'Curt_rg=currentrange in sheet s
Dim Add_1$, ADD_act$
'Add_1=first Address ADD_act=Actual Address
Set D = Sheets("Data"): Set S = Sheets("search")
Set Curt_rg = S.Range("b4").CurrentRegion
Set Curt_rg = Curt_rg.Offset(1).Resize(Curt_rg.Rows.Count - 1)
Curt_rg.Clear
Set My_rg = D.Range("B2").CurrentRegion.Columns(1).Find(S.Range("E2"), lookat:=1)
If My_rg Is Nothing Then _
MsgBox "Not found": Exit Sub
Add_1 = My_rg.Address: ADD_act = Add_1
Do
S.Cells(m, 2).Resize(, 20).Value = _
My_rg.Resize(, 20).Value
m = m + 1: T = T + 1
Set My_rg = D.Range("B2").CurrentRegion.Columns(1).FindNext(My_rg)
ADD_act = My_rg.Address
If ADD_act = Add_1 Then Exit Do
Loop
With S.Range("b5").Resize(T, 20)
.InsertIndent 1
.Font.Size = 14
.Font.Bold = True
.Borders.LineStyle = 1
End With
End Sub
الملف مرفق