logo

لوحة التميز الأسبوعي
العضو المتميز المشرف المتميز المراقب المتميز المدير المتميز الموضوع المتميز القسم المتميز
العضو المتميز المشرف المتميز المراقب المتميز المدير المتميز الموضوع المتميز القسم المتميز
Hatem Eissa hassona229-- لا تميز خلال هذه الفترة لا تميز خلال هذه الفترة لا تميز خلال هذه الفترة اكسيل مشاريع جاهزه



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





10-02-2018 12:49 صباحاً
معلومات الكاتب ▼
تاريخ الإنضمام : 26-08-2017
رقم العضوية : 194
المشاركات : 387
الدولة : مصر
الجنس :
تاريخ الميلاد : 15-2-1986
الدعوات : 2
قوة السمعة : 2972
الاعجاب : 4
موقعي : زيارة موقعي

من ضمن المفاهيم/الأساليب المستخدمة في لغات البرمجة ما يُعرف بالحلقات التكرارية Loops. تقوم الحلقات التكرارية بتنفيذ كود معين عدد محدد من المرات؛ وهي بذلك توفر على المٌبرمج الوقت والجهد المبذول في عملية كتابة الأكواد


في موضوع اليوم نستعرض أحد أنواع الحلقات التكرارية المتاحة للإستخدام في مايكروسوفت إكسل For Next


النقاط الرئيسية في هذا الموضوع


  • طريقة كتابة الحلقة التكرارية For … Next
  • إستخدام المعامل Step للتحكم في إتجاه ومقدار الحركة داخل الحلقة التكرارية
  • كيفية إنهاء عمل الحلقة التكرارية قبل إنتهاء سلسلة التنفيذ من خلال المعامل Exit For
  • الشكل العام للحلقة التكرارية For Each
  • ملاحظات على الحلقة التكرارية For Each
  • كيفية إعداد قائمة بأسماء أوراق العمل Worksheets

الاكواد المستخدمة :





Sub test()

Cells(7, 9).Value = 1
Cells(8, 9).Value = 1
Cells(9, 9).Value = 1
Cells(10, 9).Value = 1
Cells(11, 9).Value = 1
Cells(12, 9).Value = 1
Cells(13, 9).Value = 1

End Sub</pre>





[p]
Sub test2()

For i = 7 To 13 Step 2
Cells(i, 9).Value = 1
Next i

End Sub</pre>




[p]
Sub test3()

For i = 2 To 8 Step 2
Cells(16, i).Value = 1
Next i
End Sub</pre>




[p]
Sub test4()

For i = 8 To 2 Step -2
Cells(18, i).Value = 5
Next i
End Sub</pre>




[p]
Sub test5()

For i = 24 To 30
If Cells(i, 2) &gt; Date Then Exit For
Cells(i, 4).Value = Cells(i, 2).Value
Next i

End Sub</pre>

[p]وبعد أن تحدثنا عن الحلقات التكرارية For Nextوفائدتها في تنفيذ كود معين لعدد محدد من المرات تعالو بنا نستعرض نوع جديد وهو For Each.


الشكل العام للحلقة التكرارية For Each





For each عنصر in المجموعة
الكود المراد تنفيذه
Next عنصر</pre>


[p]مثال
الماكرو التالي يقوم بعمل تنسيق لكل خلية (العنصر) ضمن النطاق الذي تم تحديده (المجموعة) باللون ذو الكود رقم 111





Sub For_Each_Loop()

For Each cell In Selection
cell.Interior.Color = 111
Next cell

End Sub</pre>


ملاحظات على الحلقة التكرارية For Each


  1. تقوم الحلقة التكرارية For Each بتنفيذ الكود على العنصر element داخل المجموعة Collection وبذلك فهي يتم تنفيذها بعدد غير معلوم اثناء كتابة الكود (على عكس)
  2. الحلقة التكرارية For Next التي يتم تنفيذها بعدد معلوم حدوده من الحد الأدني Lower Bound والحد الأعلي Upper Bound
  3. يمكننا إستخدام المعامل Exit For لإيقاف الحلقة التكرارية عن العمل في حالة تحقق شرط معين (على سبيل المثال إستخدام الجملة الشرطية IF في الكود)



[p]
For Each element In Collection
كود 1
Exit For
كود 2
Next element</pre>

[p]الأكواد المستخدمة





Sub ForEachLoop1()

Dim cell As Range

For Each cell In Range("b5:e12")
If cell.Value &gt;= 5 Then
cell.Interior.ColorIndex = 43
End If
Next cell

End Sub</pre>





[p]
Sub Foreachloop2()

Dim cell As Range

For Each cell In Selection
cell.Font.ColorIndex = 3
Next cell

End Sub</pre>




[p]
Sub ShowAllSheets()

Dim sheet As Worksheet

For Each sheet In Sheets
sheet.Visible = True
Next sheet

End Sub</pre>

[p]
كيفية إعداد قائمة بأسماء أوراق العمل Worksheets التي توجد بالملف ثم تحويل إسم كل شيت الى رابط للشيت Hyperlink.


الأساليب المتبعة في هذا الكود


  1. الحلقة التكرارية For Each
  2. الدالة Hyperlink – VBA

كود إنشاء قائمة بأسماء worksheets في الملف





Option Explicit

Sub ListAllSheets2()

Dim sht As Worksheet
Dim i As Integer
i = 2

For Each sht In Worksheets
i = i + 1

ActiveSheet.Hyperlinks.Add _
anchor:=Cells(i, 2), _
Address:="", _
SubAddress:=sht.Name &amp; "!a1", _
TextToDisplay:=sht.Name

Next sht
End Sub</pre>


[p]
حين تكون أسماء أوراق العمل تشتمل على مسافة، فإن كود الهايبرلينك لا يعمل وبعطي رسالة خطأ؛ لمعالجة هذه المشكلة يتم تعديل الكود الى التالي





[p]
Option Explicit

Sub ListAllSheets2()

Dim sht As Worksheet
Dim i As Integer
i = 2

For Each sht In Worksheets
i = i + 1

ActiveSheet.Hyperlinks.Add _
anchor:=Cells(i, 2), _
Address:="", _
SubAddress:="'" & sht.Name & "'" & "!a1", _
TextToDisplay:=sht.Name

Next sht
End Sub</pre>
والى هنا انتهى درس اليوم
مع اللقاء ودرس جديد ان شاء الله
مع تحيات أخوكم
عبدالجيد أبو محمد وابراهيم




look/images/icons/i1.gif الحلقات التكرارية Loops مع شرح كيفية إعداد قائمة بأسماء أوراق العمل Worksheets
  10-02-2018 11:38 صباحاً   [1]
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 1580
الدولة : مصر
الجنس :
تاريخ الميلاد : 1-9-1995
الدعوات : 5
قوة السمعة : 10861
الاعجاب : 6
موقعي : زيارة موقعي
موضوع اكثر من رائع ونشاط ولا اروع
بارك الله فيك استاذ عبدالجيد
ويفضل كتابة الاكواد فى مربع حوار خاص به
تقبل وافر احترامى وتقديرى
واصل بلا فواصل 123




look/images/icons/i1.gif الحلقات التكرارية Loops مع شرح كيفية إعداد قائمة بأسماء أوراق العمل Worksheets
  16-07-2019 01:45 مساءً   [2]
معلومات الكاتب ▼
تاريخ الإنضمام : 08-01-2019
رقم العضوية : 10885
المشاركات : 68
الجنس :
تاريخ الميلاد : 20-3-1977
قوة السمعة : 92
الاعجاب : 0
جزاكم الله خيرا




look/images/icons/i1.gif الحلقات التكرارية Loops مع شرح كيفية إعداد قائمة بأسماء أوراق العمل Worksheets
  16-07-2019 03:22 مساءً   [3]
معلومات الكاتب ▼
تاريخ الإنضمام : 22-08-2017
رقم العضوية : 43
المشاركات : 853
الجنس :
تاريخ الميلاد : 1-5-1989
الدعوات : 1
قوة السمعة : 6611
الاعجاب : 2
بارك الله فيك اخي الكريم
مثال اخر عن الحلقات التكرارية المتداخلة
جدول الضرب حيث يمكنك تحديد حدود الجدول (5ْ×5) او (10×10) .....حتى (100×100)
من خلال الكود نفسه
CODE

Option Explicit
Sub mult_table()
Dim i%, J%
Dim x%: x = 7 'you can change this number
Range("a1").CurrentRegion.ClearContents
 For i = 1 To 100
 If i > x Then Exit For
    Cells(1, i + 1) = i
    For J = 1 To 100
    If J > x Then Exit For
    Cells(J + 1, 1) = J
  Cells(i + 1, J + 1) = i * J
 Next
 Next
 Range("a1") = "X"
End Sub




اضافة رد جديد اضافة موضوع جديد




الكلمات الدلالية
الحلقات ، التكرارية ، Loops ، كيفية ، إعداد ، قائمة ، بأسماء ، أوراق ، العمل ، Worksheets ،









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

الساعة الآن 07:47 AM