هذا الكود لمثل هذه الحالة
Option Explicit
Sub give_data_salim()
Dim m%, i%, x%, my_st$
Dim a As Boolean
Dim match%, k%: k = 1
x = Range("Source_tabl").Rows.Count
Dim find_range As Range
Range("Source_tabl").Offset(1, 1).ClearContents
For m = 2 To x
my_st = Range("Source_tabl").Columns(1).Cells(m)
If my_st = vbNullString Then k = k + 1: GoTo 2
For i = 1 To 4
a = IsError(Application.match(my_st, Range("tabl_" & i).Columns(1), 0))
If Not a Then
match = Application.match(my_st, Range("tabl_" & i).Columns(1), 0)
Set find_range = Range("tabl_" & i).Columns(1). _
Cells(match).Offset(-match + 1, -1)
Range("Source_tabl").Columns(2).Cells(k + 1) = find_range.Value
Range("Source_tabl").Columns(3).Cells(k + 1) = Range("tabl_" & i) _
.Columns(3).Cells(match)
k = k + 1
GoTo 2
End If
Next
2:
Next
End Sub