أخي @Armia Nabilرقم السيارة مكرر على طول العمود مثلا الرقم 125 هل يحب ترحيل البيانات على جميع الصفوف ام فقط الصف الأول
تفضل اختار ما يناسبك
Option Explicit
Sub test1()
Dim WS As Worksheet, dest As Worksheet
Dim c As Range, f As Range
Set WS = Sheets("1"): Set dest = Sheets("التقرير")
Application.ScreenUpdating = False
For Each c In WS.Range("H2", WS.Range("H" & Rows.Count).End(3))
Set f = dest.Range("H:H").Find((c.Value), , xlValues, xlWhole, , , False)
If Not f Is Nothing Then
dest.Range("A" & f.Row & ":j" & f.Row).Value = WS.Range("A" & c.Row & ":j" & c.Row).Value
End If
Next
Application.ScreenUpdating = True
End Sub
'========================
Sub test2()
Dim WS As Worksheet, dest As Worksheet
Dim Lastrow As Long, i As Long, rng As Range, code As Variant
Set WS = Sheets("1"): Set dest = Sheets("التقرير")
Lastrow = WS.Cells(WS.Rows.Count, "H").End(xlUp).Row
Application.ScreenUpdating = False
With dest
Intersect(.Range(.Rows(2), .UsedRange.Rows(.UsedRange.Rows.Count)), Union(Range("A:G"), .Range("I:J"))).ClearContents
End With
For i = 2 To Lastrow: code = WS.Cells(i, "H").Value
Set rng = dest.Columns("H").Find(What:=code, LookIn:=xlValues, LookAt:=xlWhole)
If Not rng Is Nothing Then
dest.Cells(rng.Row, "A").Resize(1, 10).Value = WS.Cells(i, "A").Resize(1, 10).Value
End If
Next i
Application.ScreenUpdating = True
End Sub
'=================================
Sub test3()
Dim WS As Worksheet, dest As Worksheet
Dim cel As Range, r As Range, tmp As Range
Set WS = Sheets("1"): Set dest = Sheets("التقرير")
Application.ScreenUpdating = False
For Each tmp In dest.Range("H2:H" & dest.Cells(Application.Rows.Count, 8).End(xlUp).Row)
Set r = WS.Columns(8).Find(tmp.Value, , xlValues, xlPart)
If Not r Is Nothing Then
dest.Range("A" & tmp.Row & ":j" & tmp.Row).Value = WS.Range("A" & r.Row & ":j" & r.Row).Value
End If
Next tmp
Application.ScreenUpdating = True
End Sub
تقرير.xlsb