تم التعديل (عند اضاقة اي صتف سوف يرحل تلقائياُ) مع بياناته
و يتم تصفير البيانات من جديد
Option Explicit
Sub Transfere()
Dim X, y
Dim old_val1#, New_vaL1#
Dim old_val2#, New_vaL2#
Dim i%: i = 3
Dim My_row%: My_row = Sheets("Sheet2").Cells(Rows.Count, 2).End(3).Row
If My_row <= 2 Then Exit Sub
Sheets("Sheet1").Range("a4:b" & Rows.Count).ClearContents
Sheets("Sheet1").Range("a4").Resize(My_row - 2, 2).Value = _
Sheets("Sheet2").Range("a3").Resize(My_row - 2, 2).Value
Do Until Sheets("Sheet2").Range("b" & i) = vbNullString
X = Application.Match(Sheets("Sheet2").Range("b" & i), Sheets("sheet1").Range("B:B"), 0)
New_vaL1 = Sheets("Sheet2").Range("b" & i).Offset(, 1)
New_vaL2 = Sheets("Sheet2").Range("b" & i).Offset(, 2)
y = Application.Match(Sheets("sheet2").Range("c1"), Sheets("sheet1").Rows("1"), 0)
old_val1 = Sheets("sheet1").Cells(X, y): old_val2 = Sheets("sheet1").Cells(X, y + 1)
Sheets("sheet1").Cells(X, y) = old_val1 + New_vaL1
Sheets("sheet1").Cells(X, y + 1) = old_val2 + New_vaL2
Sheets("Sheet2").Range("b" & i).Offset(, 1) = vbNullString
Sheets("Sheet2").Range("b" & i).Offset(, 2) = vbNullString
i = i + 1
Loop
End Sub
الملف الجديد مرفق
Salim_Magazine_Auto.xlsm