اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

سلسلة علمنى كيف اصطاد - الحلقة التكرارية For next


الردود الموصى بها

بسم الله الرحمن الرحيم

الاخوة الاعزاء أقدم لكم اليوم 

 

شرح مبسط عن الحلقه التكرارية For   next

 

انا هبدأ على طول بالامثله العمليه والتطبيقية حتى يتضح لنا ما معنى الحلقه وفيما تستخدم

مثال 1 

عدد عشرة صناديق   :gift2:       ( كنت عامل رسم عشر صناديق لكن للاسف عند الحفظ طلب تقليل الوجوه التعبيريه)

 

وهو ايه الصناديق دى ؟؟ / هقولك الصناديق دى كنوز وهدايا فيهم صندوق منهم فى ساعه هدية لحبيبى ياسر خليل انا بصراحه مش عارف ايه المناسبة بس اهو هدية وخلاص حبيبنا برضوا ولازم نكرمه معلش يا عم ياسر هنتعب واحد دلوقتى علشان يروح يجيب لك الساعه انتظر شوية وهتيجى لك الساعه لحد عندك انت غالى برضوا ولا ايه صحيح

 

:dance1: دا واحد صاحبنا قاعد مبسوط لانه بيسمع الماتش و الاهلى جاب جون امه  :geek:  هتنادم عليه ( مش هتنادى عليه ) هتنادم يعنى هيندم على اليوم اللى اتولد فيه طب ليه؟ لان أمه هتقوله روح للصناديق اللى فوق افتح صندوق صندوق وتعالى هههههههه أول شئ هتلاقى وشه عامل كدا :mad:  زى ابولهب  المهم صحبنا ده هيروح ياعينى للصناديق ويفتح العشرصناديق  صندوق صندوق ويرجع طبعا لما يرجع هيعمل لامه كدا  :wallbash:  ويزعق انا عايز افهم انتى قلتى روح ليه ايه الفايده انى افتح الصناديق بس ضيعتى عليا الماتش 

 

لو عايزين نطبق الكلام الحلو ده بس بلغه Vba  بتاعة عمنا بيل جيتس 

Sub hossam()
For i = 1 To 10
Next
End Sub

هنا اول سطر الاعلان عن بداية الكود / السطر الثانى عملنا حلقه تكرارية For  واسمها  i  اللى هو بالمثال فوق الصناديق  وممكن تسميه اى حرف اخر كيفما يحلو لك  وقلنا ان الصناديق تبدأ من اول صندوق الى اخر صندوق وهو 10  / السطر الثالث هو next  وهى تعنى التالى صاحبنا هيروح لاول صندوق ويفتحه وبعدها يروح للصندوق الثانى ويفتحه يخلص وبعدها يروح للصندوق الثالث ويفتحه وهكذا

والسطر الرابع يعنى نهاية الكود

طبعا الكود ده ما فى منه اى فايده ليه يا عم لانك مقلتش له مهمه ينفذها انت بس قلتله لف على الصناديق زى لف التراك كدا 

*********************************************************************************************

مثال 2

الحاجه وابنها اللى فى المثال الاول هتقوله يابنى روح للصناديق وهات الساعه لعمك ياسر / افتح صندوق صندوق لو لقيت صندوق منهم فى ساعه مكتوب عليها هدية لعمك ياسر هتها وتعالى قالها وافرض لقيت الساعه باول صندوق ارجع ومكملش ههههههههههههههههه ولد زكى امه قالت له لا يا حبيبى افتح برضوا كل الصناديق افتحهم كلهم حتى لو لقيت الساعه فى اول صندوق  طبعا صاحبنا هيعمل كدا  :angry:  الغيظ يا عينى هيطق من عينيه 

 

لو حبينا بقى نعمل الكلام ده بالبرمجه  بالكود يعنى نعمل ايه 

Sub hossam()
For i = 1 To 10
If "لو اى صندوق جواه ساعه " Then
 "طلع الساعه من الصندوق "
End If
Next
End Sub

الجديد هنا اننا استخدمنا قاعدة If  يعنى شرط للمأمورية اللى هيقوم بها صاحبنا مش هيروح يفتح فى الصناديق بس ويرجع زى المره الاولى 

 ***********************************************************************************************

مثال 3

صاحبنا اللى فوق ده امه قررت انها تريحه وقالت له افتحى الصناديق يا حبيبى ولو لقيت صندوق فى الساعه هاتها وارجع ومتكملش فتح الباقى صاحبنا قال طيب  :yes: وراح 

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

 

علشان نعمل الكلام ده بالكود هيكون كدا نفس الكود السابق بس اضافه حاجه صغيره جدا

Sub hossam()
For i = 1 To 10
If "لو اى صندوق جواه ساعه " Then
 "طلع الساعه من الصندوق "
Exit For
End If
Next
End Sub

يعنى عندما يتحقق الشرط ارجع واخرج من الحلقه اللى هى For  ومتكملش 

********************************************************************************************

مثال 4

 

عايزين نطبق الكلام الحلو ده بس على امثله بالاكسيل

فى الامثله السابقه هنستبدل  الصناديق بالخلايا من  A1:A10  وهيكون الساعه  موجوده فى  محتوى الخلايا 

معانا صوره فيها بيانات من الخلية A1 : A 10

  

kNgQ1j.png

 

لما نطبق الكود دا 

Sub hossam()
For i = 1 To 10
If Cells(i, "A") = "ساعه" Then
Cells(i, "B") = "مبروك"
End If
Next
End Sub

حته على الهامش  cells  تكتب هكذا ( العمود ,  الصف ) cells

فى الكود اعلاه الصف هو i والعمود هو A  وتم وضعه بين علامتى تنصيص "A" 

لما نطبق الكود هنلاقى النتيجة كما هو موضح بالصورة

 

EZlkyG.png

 

*********************************************************************

مثال 5 

 

لو عايزين الكود لما يلاقى ساعه يطلع وميكملش 

هنضيف زى ما كلنا Exit For

ويكون الكود كدا

Sub hossam()
For i = 1 To 10
If Cells(i, "A") = "ساعه" Then
Cells(i, "B") = "مبروك"
Exit For
End If
Next
End Sub

وهتلاقى النتيجة كما هو بالصورة مبين 

 

eieNVu.png

 

*********************************************************************************************

مثال 6

 

من الوضح ان الامثله السابقه الحلقه تبدا من 1 الى 10 أى معلوم بدايتها ونهايتها 

طيب لو عندى حلقه معلوم بدايتها وغير معلوم نهايتها 

يعنى العمود A البيانات فيه متغيره وفى ازدياد 

فى هذه الحاله نستخدم تعريف اخر خليه بها بيانات فى العمود كالتالى 

nn = Cells(Rows.Count, "A").End(xlUp).Row

nn هنا هو تعريف اخر خليه بها بيانات ويتم استخدمها بالكود بعد ذالك بدل من كتابة Cells(Rows.Count, "A").End(xlUp).Row كل مره ( طبعا يمكن تغيرها الى اى حروف انت تحبها

وبكدا هيكون الحلقه كالتالى

For i = 1 To nn

والكود كامل هيكون كدا

Sub hossam()
nn = Cells(Rows.Count, "A").End(xlUp).Row
For i = 1 To nn
If Cells(i, "A") = "ساعه" Then
Cells(i, "B") = "مبروك"
Exit For
End If
Next
End Sub

************************************************************************

مثال 7

كل الشغل اللى معمول ده على ان الحلقه بتعمل على الصفوف طيب انا عايزها تعمل على الاعمده

يعنى الشكل زى الصورة دى

 

vUFGla.png

بفرض انه غير معلوم اخر خليه بها بيانات فى الصف 1

هنعمل تعريف لها كالتالى 

nn = Cells(1, Columns.Count).End(xlToLeft).Column

هو نفس تعريف اخر صف كما قلنا سابقا ولكن بختلاف ترتيب Cells  عايزكم انتم تلاحظو الفرق

الكود هيكون كالتالى

Sub hossam()
nn = Cells(1, Columns.Count).End(xlToLeft).Column
For i = 1 To nn
If Cells(1, i) = "ساعه" Then
Cells(2, i) = "مبروك"
Exit For
End If
Next
End Sub

الاختلاف هنا عن الكود بالمثال هو تعريف nn  كما وضحنا سابقا  وايضا فى ( Cells(1, i هنا cells  الصف ثابت وهو 1 والعمود هو المتغيير i 

ولو ضغطنا على الزر سيكون نتيجة الكود كالتالى كما هو مبين بالصورة

 

XQjONJ.png

 

*************************************************************************************************

مثال 8

الصور الذى تم الشرح عليها كلها فى الورقه 1 من الملف يعنى البيانات ونتيجة البيانات كانت بنفس الورقة

انا عايز اروح للورقه 2 واعمل زر واعيين عليه الماكرو بس حلقه For هتبحث عن البيانات بالورقه 1 هنعمل ايه امر بسيط جدا

هنستخدم With  وطبعا هنقفلها ب End With

Sub hossam()
With Sheet1
nn = Cells(1, Columns.Count).End(xlToLeft).Column
For i = 1 To nn
If .Cells(1, i) = "ساعه" Then
[A1] = "مبروك"
Exit For
End If
Next
End With
End Sub

طبعا هو نفس الكود اللى بالمثال 7 والجديد هو  استخدمنا  With Sheet1 فى بداية الكود  وقفلناه قبل نهاية الكود ب End With  وقلنا لو تحقق الشرط خلى الخليه A1 = "مبروك"

كما هو موضح بالصورتين

صورة الورقه 1 اللى بها البيانات 

iZYTGy.png

صورة الورقه 2 عند الضغط على الزر وظهور مبروك بالخلية A1

sHjeXb.png

 

**********************************************************************************************

تعبت الولد معك يا عم ياسر المهم الحمد لله الولد نجح بالمهمه وجاب لك الساعه :gift2:  ودلوقتى بيتفرج على الماتش والاهلى جاب جون تانى   :jump:  والفرحه مش سيعاه 

***************************************************************************

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

 

يمكنكم شرح افضل من هذا على الرابط  من اعمال الاخ الحبيب ياسرخليل حلقات افتح الباب يا عبدالتواب

http://www.officena.net/ib/index.php?showtopic=56941=

 

وايضا يمكنكم متابعه الرابط التالى للاخ الحبيب محمود الشريف

http://www.officena.net/ib/index.php?showtopic=56000&hl=

كما يوجد ايضا العديد من الشروحات التى تتناول الحلقه التكرارية For   next يمكنكم البحث عنها داخل المنتدى

 

تقبلوا تحياتى واتمنى لك التوفيق

  • Like 6
رابط هذا التعليق
شارك

بسم الله ما شاء الله ..شرح في منتهى الجمال والروعة

ربنا يبارك فيك يا مستر حسام ومشكور على الساعة الهدية (بس الساعة دي 60 دقيقة ؟ ولا ساعة الحظ متتعوضش)

ملحوزة صغيرة : في المثال رقم 7

صحح عندك ..عشان تجيب العمود لازم فيه حاجة كمان تتغير ركز واعرف الخلطة فين :

nn = Cells(1, Columns.Count).End(xlToLeft).Column

ركز واصحى فيه ناااااس مراقبينك !!

تقبل تحياتي

  • Like 1
رابط هذا التعليق
شارك

يا كبير انتى تعبتنى انا والولد حرام عليك وكمان علشان حظى السئ النور قطع  ههههههههههههههههههه

اللى عمرها ما حصلت هنا  ورجعت عملت الشرح تانى وجيت احفظ قالى انت مستخدم وجوه تعبيريه كتير

ده غير التنسيقات والالوان والاهتمام بالشكل

بقالى يا كبير 3 ساعات ارحمنى

لازم طبعا اكون مش مركز (بس انا مطمن انى ورايا اساتذه كبار وعمالقه ) يصوبوا لنا ما غفلنا عنه بالخطأ

تقبل تحياتى ورمرورك العطر

  • Like 1
رابط هذا التعليق
شارك

اخى الحبيب والغالى الاستاذ احمد 

شكرا يا غالى على مرورك العطر

عايزك تشرح لنا حاجه حلوه من علمك الغزيز عايز اتعلم منك واستفيض متبخلش علينا

تقبل تحياتى

  • Like 1
رابط هذا التعليق
شارك

ماشاء الله عليك يااستاذ حسام

شرح فى منتهى الروعه والبساطه

يدخل على طول فى المخ من غير اى مقدمات

وطبعا الشكر موصول لصاحب الهمه العاليه اللى دايما انت ياحسام بتهاديه استاذى الحبيب ياسر خليل

:fff: :dance1: تقبل منى تحياتى :fff::signthankspin:

  • Like 2
رابط هذا التعليق
شارك

 

اخى الحبيب والغالى الاستاذ احمد 

شكرا يا غالى على مرورك العطر

عايزك تشرح لنا حاجه حلوه من علمك الغزيز عايز اتعلم منك واستفيض متبخلش علينا

تقبل تحياتى

 

 

حبيبي أ.حسام

 

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

 

:fff: تحياتي  :fff: 

  • Like 1
رابط هذا التعليق
شارك

اخى الحبيب

استاذى محمد الريفى

هذا ما تعلمته منكم وما العبد الا قطره فى بحر علمكم 

شكرا على كلماتك الطيبه ومرورك العطر

تقبل تحياتى

  • Like 1
رابط هذا التعليق
شارك

اخى الحبيب وأستاذي الغالي / حسام

شرح ممتاز للحلقة التكرارية أفدتني كثيرا

زادك الله علما ونورا وجعله فى ميزان حسناتك

تحياتي :fff:

  • Like 1
رابط هذا التعليق
شارك

اخى وحبيبى

سيف الدين حسام

يالا ورينى الهمه عايزك تصطاد المعلومه وتستنتج ازاى نجبر المستخدم على عدم تكرار سند القبض

تقبل تحياتى

رابط هذا التعليق
شارك

الاخ الفاضل حسام

شرح جميل وامثلة مفيدة

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

رابط هذا التعليق
شارك

استاذى الحبيب

عبدالله المجرب

مرورك هو الاجمل فهذا ما تعلمته منكم 

وللعلم ان سبب دخولى عالم الاكواد كنت على اليوتيوب بالصدفه وبدون بحث لقيت فيديو عن الترحيل لحضرتك كان الرابط التالى  

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

وبعد هاتين كانت الانطلاقه للاشتراك بالمنتديات والبحث عن كتب بالنت 

تقبل تحياتى

رابط هذا التعليق
شارك

  • 1 month later...

الاخوة الكرام

هذا رابط اخر به شرح افضل من ذالك وبالفيديو للعلامه معتصم محمد

http://www.officena.net/ib/index.php?showtopic=37735&hl=

تقبلوا تحياتى

رابط هذا التعليق
شارك

  • 6 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information