بسم الله الرحمن الرحيم
الملف به ثلاثة أوراق عمل
الأولى "Main "و هى الورقة التى تحتوى على البيانات الاساسية
الثانية "Boy" و هى الورقة التى سوف يتم نقل بيانات الأولاد اليها 0
الثالثة "Gairl" و هى الورقه التى سوف يتم نقل بيانات البنات اليها 0
طبعا الأكسيل لا يستطيع التفريق بين أسماء الأولاد و أسماء البنات من نفسه , لذلك فى خانه الملاحظات أضفت كلمه ولد و كلمه بنت حتى يتم الفصل بين البيانات 0
أليكم مثال بسيط ليتم الفهم جيدا
نريد أن نبحث فى العمود C من "C2:C10" عن كلمه و لد وأعطاء رسالة كلمه "ولد" 0
بداية يجب معرفه أننا من الممكن أن نشير الى الخلية فى ورقة العمل بعدة طرق منها
Cells(Row No , Column No)
(1,2) خليه فى الصف الأول و العمود الثانى
(2,2) خليه فى الصف الثانى و العمود الثانى
وهكذا
الخطوة الأولى :
ليس أمامنا سوف أستخدام جمله For…….Next التكرارية
ليكون بداية الكود
For i = 2 To 10
سنبدأ العد من 2 حتى ننتهي عند 10
وذلك لتحديد المجال و يمكن زيادة المجال بتغيير الرقم 10
الخطوة الثانية :
سنقوم بالبحث عن أسم "ولد" فى الصفوف من صف 2 الى صف 10 بالعمود الثالث
If Worksheets("Main").Cells(i, 3) = "ولد" Then
لاحظ أن القيمة i سوف تتغير من الصف 2 الى صف 10 و العمود رقم 3 ثابت
الخطوة الثالثة (النتيجة)
أظهار رسالة تفيد بأن الخلية بها كلمة "ولد"
و نلاحظ أن عدد مرات ظهور الرسالة هو نفس عدد كلمات كلمة "ولد" فى العمود
MsgBox "ولد"
ثم نقوم بأنهاء جملة If
End If
و أتمام جملة For
Next
وهذا هو الكود النهائى
Sub test()
For i = 2 To 10
If Worksheets("Main").Cells(i, 3) = "ولد" Then
MsgBox "ولد"
End If
Next
End Sub
من الممكن نسخ الكود السابق بعد فهمه و تجربته و تغيير المجال أو البحث عن بنت بدلا من ولد
ولكن يجب تسميه ورقة البيانات "Main" حتى يعمل الكود
يبقى لكم شرح كيفيه نقل البيانات الى اوراق العمل الاخرى , ولكن للاسف لن استطيع التكمله الان حتى تستطيعوا التجربه و لا يكون الامر معقدا عند استبدال الرساله بأمر النقل و الأكثر من ذلك ان الموضوع استغرق وقت طويل و مجهود 0
و الى لقاء للتكمله
السلام عليكم