اعلن هنا
أكاديمية الصقر للتدريب
أعلن هنا
أعلن هنا
صفحتنا على الفيس بوك
أعلن هنا



أهلا وسهلا بك زائرنا الكريم في أكاديمية الصقر للتدريب، لكي تتمكن من المشاركة ومشاهدة جميع أقسام المنتدى وكافة الميزات ، يجب عليك إنشاء حساب جديد بالتسجيل بالضغط هنا أو تسجيل الدخول اضغط هنا إذا كنت عضواً .





جملة التكرار Do While Loop

السلام عليكم ورحمة الله وبركاته إخواني الكرام .... رغم أنه لا يوجد تفاعل بالشكل المطلوب مع الدروس التي تقدم إلا أنني أض ..



16-07-2018 09:07 مساء
YasserKhalil
menu_open عضوية موثقة
مراقب عام
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 4651
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 11
يتابعهم : 0
يتابعونه : 318
قوة السمعة : 13375
الاعجاب : 4949
 offline 

السلام عليكم ورحمة الله وبركاته

إخواني الكرام ....
رغم أنه لا يوجد تفاعل بالشكل المطلوب مع الدروس التي تقدم إلا أنني أضع هذه الدروس علها تجد من يستجيب لها في المستقبل وعلها تكون في ميزان حسناتنا يوم القيامة

أقدم لكم دروس بسيطة للتعرف على الأكواد للـ VBA بشكل مبسط وبأمثلة عملية تطبيقية لتكون مفهومة بشكل أفضل وتستطيع الاستفادة منها بشكل عملي .. ولا أحب أن تكون الدروس مجرد كلام نظري

لذا تجدني في الدروس أفترض وجود بيانات بشكل معين ثم نبدأ على أساس هذه البيانات نتعامل معها ..

المعطيات : لديك قائمة أسماء في العمود الأول A وتبدأ الأسماء من الخلية A2 وحتى آخر صف به بيانات (البيانات متصلة أي لا يوجد خلايا فارغة بين الأسماء)
شكل البيانات بهذا الشكل
An7yD4CNP1H1EM0

المطلوب : استخدام جملة Do While .. لعمل حلقة تكرارية للأسماء وطباعة الأسماء في النافذة الفورية Immediate Window .. (يمكن إظهارها بالضغط على Ctrl + G)
Ut2vm6pczHgnn1b

بعد أن تعرفنا على المعطيات والمطلوب أي شكل المخرجات المطلوبة .. نأتي لخطوات كتابة الكود

>> سنقوم بالإعلان عن متغير من النوع نطاق ليشير للخلية A1 وليس الخلية A2 .. المتغير باسم c

>> نقوم بتعيين النطاق A1 ليشير للمتغير الذي قمنا بتسميته c

>> نستخدم جملة Do While يليها مسافة ثم الشرط الذي على أساسه تنتهي الحلقة التكرارية ، والشرط هو أن تكون الخلية التالية للنطاق c خلية فارغة
وهنا نستخدم دالة الإزاحة Offset للإزاحة بمقدار خلية واحدة لأسفل بهذا الشكل
c.Offset(1)

فنقوم بوضع الشرط وهو أن تكون قيمة الخلية Value التي تم الوصول إليها عن طريق الإزاحة بحيث هذه الخلية لا تساوي <>  فراغ ""

>> لهذه الجملة Do While قفلة وهي كلمة Loop والتي توضع في نهاية الحلقة التكرارية ، وبينهما تكتب أسطر الكود ..

>> نستخدم كلمة Debug.Print لطباعة القيم أي الأسماء في النافذة الفورية ، ونترك بعدها مسافة ونشير للخلية التي تم عمل إزاحة لها ، ونحدد أننا نريد قيمتها
c.Offset(1).Value


>> بقي سطر واحد فقط وهو مهم جداً لأنه لولا هذا السطر لظلت الحلقة التكرارية إلى ما لا نهاية ، وهذا السطر سيقوم بتغيير المتغير c ليشير إلى الخلية التي تليها
** على سبيل المثال المتغير c يشير إلى الخلية A1 ونريد أن نغير المتغير بحيث يشير إلى الخلية التي تليها .. في هذه الحالة نستخدم جملة Set يليها اسم المتغير وهو c ثم علامة يساوي ثم نضع المتغير c يليه نقطة يليه دالة الإزاحة Offset ونحدد مقدار الإزاحة بمقدار صف واحد لأسفل فنكتب الرقم 1 بين قوسين 
** إذاً مع كل حلقة تكرارية سيتغير المتغير c ليعبر عن الخلية التي تليها ففي أول حلقة سيكون A2 ثم A3 ثم A4 وهكذا

أرجو أن يكون التطبيق يسير عليكم إن شاء الله

كان معكم أخوكم في الله / ياسر خليل أبو البراء
 




لرؤية الروابط والمرفقات عليك الرد على الموضوع


أثارت هذه المشاركة إعجاب: Eslam Abdullah، الصقر، abdulwahed catran، ابو يحي،





16-07-2018 11:41 مساء
مشاهدة مشاركة منفردة [1]
Eslam Abdullah
menu_open
مشرف على لغات برمجة آخرى
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 1157
الجنس : ذكر
تاريخ الميلاد : 1-9-1995
الدعوات : 2
يتابعهم : 3
يتابعونه : 55
قوة السمعة : 6902
الاعجاب : 1949
 offline 
look/images/icons/i1.gif جملة التكرار Do While Loop
رائع رائع طريقة شرح مفيش بعدها كلام
ولا يهم الان التفاعل بالشكل المطلوب الواحد بيعمل للزمن فعلا قد تكون تلك الدروس صدقة جاريه فيما بعد
انت بتعمل خير للاسف فى الزمن دا نادر جدا وحتى اللى بيقدر قليل
لكن انا اكيد بقدر واسعد جدا بمتابعتك دائما وابدا
اتفضل الهووم وورك امستر ولو سمحت اعملى نجمة biggrin2
Sub M_Yasser()
Dim c As Range
Set c = Range("a1")
Do While c.Offset(1).Value <> ""
Debug.Print c.Offset(1).Value
Set c = c.Offset(1)
Loop
End Sub

أثارت هذه المشاركة إعجاب: YasserKhalil،




17-07-2018 05:46 صباحا
مشاهدة مشاركة منفردة [2]
salim
menu_open
خبير معتمد
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 22-08-2017
رقم العضوية : 43
المشاركات : 189
الجنس : ذكر
تاريخ الميلاد : 1-5-1989
يتابعهم : 13
يتابعونه : 6
قوة السمعة : 2079
الاعجاب : 426
 offline 
look/images/icons/i1.gif جملة التكرار Do While Loop
احد الحلول الاخرى
   عندي سؤالين ارجو الاجابة:
1- ما هي هذه الاشارة <> التي تظهر في الزاوية  العليا اليسرى من نافذة الكود بعد ارساله
2- هل يمكن جعل نافذة الكود مطاطة بحيث يستطيع الانسان قراءة اكثر من 6 او 7 اسطر من الكود
     لأنك عتدما تقرأ فقط قسم من الكود الطويل لا تتذكر ما ورد في البداية و لا يمكن تخمين النهاية
           (حتى و لو استعملت مقبض الانزلاق)

Sub M_Salim()
Dim i%: i = 2
Do Until Range("a" & i) = vbNullString
Debug.Print Range("a" & i)
i = i + 1
Loop
End Sub
'==========================
Sub M_Salim1()
Dim i%: i = 2
Do
Debug.Print Range("a" & i)
i = i + 1
Loop Until Range("a" & i) = vbNullString
End Sub


 

أثارت هذه المشاركة إعجاب: YasserKhalil،




17-07-2018 06:38 صباحا
مشاهدة مشاركة منفردة [3]
الصقر
menu_open عضوية موثقة
مراقب عام
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 2
المشاركات : 1410
الجنس : ذكر
الدعوات : 12
يتابعهم : 0
يتابعونه : 359
قوة السمعة : 11272
الاعجاب : 2792
 offline 
look/images/icons/i1.gif جملة التكرار Do While Loop

جزاكم الله خيرا اخى الحبيب ابوبراء
جعله الله فى ميزان حسناتك يارب
123113


أثارت هذه المشاركة إعجاب: Eslam Abdullah، salim، YasserKhalil،




17-07-2018 06:53 مساء
مشاهدة مشاركة منفردة [4]
YasserKhalil
menu_open عضوية موثقة
مراقب عام
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 4651
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 11
يتابعهم : 0
يتابعونه : 318
قوة السمعة : 13375
الاعجاب : 4949
 offline 
look/images/icons/i1.gif جملة التكرار Do While Loop
أخي الحبيب إسلام عبد الله أحلى نجمه لأنشط وأوحد طالب 3

أخي الحبيب سليم
جزيت خيراً على إثرائك للموضوع بتقديم جملة أخرى للتكرار وهذا سيفيد الأعضاء بشكل كبير .. 
فيما يخص السؤال الأول هو إشارة إلى وجود كود .. فيما يخص النقطة الثانية أعتقد من الأفضل نسخ الكود ووضعه في محرر الأكواد ودراسته باستخدام مفتاح التتبع F8 بحيث يرى المتعلم ما يحدث بالضبط في النافذة الفورية ونافذة اللوكال وفي ورقة العمل ..

أخي الحبيب حسام خطاب
مشكور على مرورك العطر .. بس يا ريت متبقاش تيجي وايدك فاضية وخصوصاً إننا عارفين إنك كريم

تقبلوا وافر تقديري واحترامي

أثارت هذه المشاركة إعجاب: Eslam Abdullah، salim،




15-10-2018 08:14 صباحا
مشاهدة مشاركة منفردة [5]
جبري
menu_open
عضو نشيط
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 23-04-2018
رقم العضوية : 5752
المشاركات : 71
الجنس : ذكر
تاريخ الميلاد : 1-5-1978
يتابعهم : 1
يتابعونه : 0
قوة السمعة : 60
الاعجاب : 25
 offline 
look/images/icons/i1.gif جملة التكرار Do While Loop
الله يبارك فيك


 

3 123 111






المواضيع المتشابهه
عنوان الموضوع الكاتب الردود الزوار آخر رد
هل يوجد طريقة لكشف التكرار في اكثر من ورقة عمل؟ mohammad excel
2 66 YasserKhalil
الحلقة الرابعة عشر الحلقات التكرارية Eslam Abdullah
4 129 YasserKhalil
الحلقات التكرارية Loops مع شرح كيفية إعداد قائمة بأسماء أوراق العمل Worksheets عبدالجيد
1 247 عبدالجيد
كود نسخ صف بشرط الى شيت اخر مع عدم التكرار ahmed moh
14 890 محمود ابو الدهب
تنبيه عند التكرار في عمود في حدث ورقة العمل فتحي سلام
11 955 YasserKhalil

الكلمات الدلالية
جملة ، التكرار ، While ، Loop ،


 







اخلاء مسئولية: يخلى منتدى أكاديمية الصقر للتدريب مسئوليته عن اى مواضيع او مشاركات تندرج داخل الموقع ويحثكم على التواصل معنا ان كانت هناك اى إنتهاكات تتضمن اى انتهاك لحقوق الملكية الفكرية او الادبية لاى جهة - بالتواصل معنا من خلال نموذج مراسلة الإدارة .وسيتم اتخاذ الاجراءات اللازمة.
سياسة النشر: التعليقات المنشورة لا تعبر عن رأي منتدى أكاديمية الصقر للتدريب ولا نتحمل أي مسؤولية قانونية حيال ذلك ويتحمل كاتبها مسؤولية النشر.



الساعة الآن 10:22 صباحا

أعلن هنا
أعلن هنا
أعلن هنا