السلام عليكم ورحمة الله وبركاته
إخواني الكرام ....
رغم أنه لا يوجد تفاعل بالشكل المطلوب مع الدروس التي تقدم إلا أنني أضع هذه الدروس علها تجد من يستجيب لها في المستقبل وعلها تكون في ميزان حسناتنا يوم القيامة
أقدم لكم دروس بسيطة للتعرف على الأكواد للـ VBA بشكل مبسط وبأمثلة عملية تطبيقية لتكون مفهومة بشكل أفضل وتستطيع الاستفادة منها بشكل عملي .. ولا أحب أن تكون الدروس مجرد كلام نظري
لذا تجدني في الدروس أفترض وجود بيانات بشكل معين ثم نبدأ على أساس هذه البيانات نتعامل معها ..
المعطيات : لديك قائمة أسماء في العمود الأول A وتبدأ الأسماء من الخلية A2 وحتى آخر صف به بيانات (البيانات متصلة أي لا يوجد خلايا فارغة بين الأسماء)
شكل البيانات بهذا الشكل
المطلوب : استخدام جملة Do While .. لعمل حلقة تكرارية للأسماء وطباعة الأسماء في النافذة الفورية Immediate Window .. (يمكن إظهارها بالضغط على Ctrl + G)
بعد أن تعرفنا على المعطيات والمطلوب أي شكل المخرجات المطلوبة .. نأتي لخطوات كتابة الكود
>> سنقوم بالإعلان عن متغير من النوع نطاق ليشير للخلية A1 وليس الخلية A2 .. المتغير باسم c
>> نقوم بتعيين النطاق A1 ليشير للمتغير الذي قمنا بتسميته c
>> نستخدم جملة Do While يليها مسافة ثم الشرط الذي على أساسه تنتهي الحلقة التكرارية ، والشرط هو أن تكون الخلية التالية للنطاق c خلية فارغة
وهنا نستخدم دالة الإزاحة Offset للإزاحة بمقدار خلية واحدة لأسفل بهذا الشكل
CODE
c.Offset(1)<br />
فنقوم بوضع الشرط وهو أن تكون قيمة الخلية Value التي تم الوصول إليها عن طريق الإزاحة بحيث هذه الخلية لا تساوي <> فراغ ""
>> لهذه الجملة Do While قفلة وهي كلمة Loop والتي توضع في نهاية الحلقة التكرارية ، وبينهما تكتب أسطر الكود ..
>> نستخدم كلمة Debug.Print لطباعة القيم أي الأسماء في النافذة الفورية ، ونترك بعدها مسافة ونشير للخلية التي تم عمل إزاحة لها ، ونحدد أننا نريد قيمتها
CODE
c.Offset(1).Value<br />
>> بقي سطر واحد فقط وهو مهم جداً لأنه لولا هذا السطر لظلت الحلقة التكرارية إلى ما لا نهاية ، وهذا السطر سيقوم بتغيير المتغير c ليشير إلى الخلية التي تليها
** على سبيل المثال المتغير c يشير إلى الخلية A1 ونريد أن نغير المتغير بحيث يشير إلى الخلية التي تليها .. في هذه الحالة نستخدم جملة Set يليها اسم المتغير وهو c ثم علامة يساوي ثم نضع المتغير c يليه نقطة يليه دالة الإزاحة Offset ونحدد مقدار الإزاحة بمقدار صف واحد لأسفل فنكتب الرقم 1 بين قوسين
** إذاً مع كل حلقة تكرارية سيتغير المتغير c ليعبر عن الخلية التي تليها ففي أول حلقة سيكون A2 ثم A3 ثم A4 وهكذا
رابط الملف من هنا
كان معكم أخوكم في الله / ياسر خليل أبو البراء