بعد الصلاة و السلام على سيدنا رسول الله
بناء على طلب اخي سمير في الموضوع على الرابط التالي http://www.officena.net/ib/index.php?s=&am...st&p=138343 هذالكوود الموجود في الملف
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then GoTo 1
Q = Target.Cells.Row
WW = Sheets("DATA").Cells(5555, 2).End(xlUp).Row
If Cells(Q, 2) = "" Then GoTo 1
For W = 3 To WW
If Sheets("DATA").Cells(W, 2) = Cells(Q, 2) Then
For E = 3 To 6
Cells(Q, E) = Sheets("DATA").Cells(W, E)
Next
End If
Next
1
End Sub
و شرحة كالتالي
Private Sub Worksheet_Change(ByVal Target As Range)
هذا الكود تم وضعة في الحدث التلقائي لتغيير الورقة و هو يعمل بمجرد الكتابة في خلية الورقة ثم الإنتقال منها
If Target.Column <> 2 Then GoTo 1
هنا تم تحديد منطقة عمل الكود في العمود رقم 2 وهو العمود B
اذا كانت الخلية الهدف ليست في العمود 2 اذهب الى 1 وتم وضع 1 في نهاية الكود
Q = Target.Cells.Row
تم تعيين متغير اسمة Q وهذا المتغير يأخذ رقم السطر الموجود به الخلية التي تم التحرير بها
WW = Sheets("DATA").Cells(5555, 2).End(xlUp).Row
تم تعيين متغير وهو يساوي قيمة آخر سطر مكتوب في الرقة DATA للعمود B وهو العمود 2 - وهنا اعطيناه الأمر الذي يتم تنفيذه يدويا كالتالي
اذهب الى الورقة DATA
قف على الخلية B5555
اضغط Ctrl+سهم للأعلى المكان الذي سوف يقف به المؤشر خذ رقم السطر
If Cells(Q, 2) = "" Then GoTo 1
وهنا اعطيناه شرط آخر اذا كانت الخلية الهدف في العمود 2 تساوي فراغ اذهب الى واحد
بمعنى اذا قمنا بمسح محتويات الخلية او لم نكتب بها لايتخذ اي اجراء
For W = 3 To WW
ونحد مجال الأسطر التي سوف نعمل عليها او نبحث فيها عن القيمة في ورقة DATA وهي من السطر 3 الى آخر سطر تمة الكتابة به و الذي حددنا قيمته مسبقا ب الرمز WW
If Sheets("DATA").Cells(W, 2) = Cells(Q, 2) Then
وهذا شرط العملية
اذا كانت قيمة الخلية في العمود 2 للسطر W في ورقة DATA تساوي قيمة الخلية للسطر Q العمود 2 للورقة الحالية اذا....
For E = 3 To 6
متغير آخر
حيث ان اللأعمدة في الورقتين متشابهه بعنى اننا نريد ان ننقل الموجود في العمود C من ورقة الى العمود Cفي الورقة الأخرى
عملنا متغير تكرار دائري من 3 الى 6 اي سوف يعمل على الأعمدة C - D - E - F - G
بمعنى انه اذا وجد الشرط الأول تطابق القيمتين للورقتين في العمو او B سوف يبدأ هذه العملية للنقل بموجب رقم السطر W
Cells(Q, E) = Sheets("DATA").Cells(W, E)
الخلية التي بها ارقام المتغيرا ت للسطر Q و العمود E تكتب بها قيمة الخلية في ورقة DATAللسطر W و العمود E = = = = = = = الحمد لله رب العالمين هذا موجز شرح الكود و الملف مرفق في الرابط اعلاه