اعلن هنا
أكاديمية الصقر للتدريب
أعلن هنا
أعلن هنا
أعلن هنا
أعلن هنا



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





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

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



10-02-2018 12:49 صباحا
عبدالجيد
menu_open
عضو محترف
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 26-08-2017
رقم العضوية : 194
المشاركات : 280
الدولة : مصر
الجنس : ذكر
تاريخ الميلاد : 15-2-1986
يتابعهم : 88
يتابعونه : 15
قوة السمعة : 1913
الاعجاب : 464
موقعي : زيارة موقعي
 Online 

من ضمن المفاهيم/الأساليب المستخدمة في لغات البرمجة ما يُعرف بالحلقات التكرارية 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
Sub test2()
 
For i = 7 To 13 Step 2
    Cells(i, 9).Value = 1
Next i
 
End Sub
Sub test3()
 
For i = 2 To 8 Step 2
    Cells(16, i).Value = 1
Next i
End Sub
Sub test4()
 
For i = 8 To 2 Step -2
    Cells(18, i).Value = 5
Next i
End Sub
Sub test5()
 
For i = 24 To 30
    If Cells(i, 2) > Date Then Exit For
    Cells(i, 4).Value = Cells(i, 2).Value
Next i
 
End Sub

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

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

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

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

Sub For_Each_Loop()
 
For Each cell In Selection
    cell.Interior.Color = 111
Next cell
 
End Sub

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

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

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

Sub ForEachLoop1()
 
Dim cell As Range
 
For Each cell In Range("b5:e12")
If cell.Value >= 5 Then
    cell.Interior.ColorIndex = 43
End If
Next cell
 
End Sub
Sub Foreachloop2()
 
Dim cell As Range
 
For Each cell In Selection
    cell.Font.ColorIndex = 3
Next cell
 
End Sub
Sub ShowAllSheets()
 
Dim sheet As Worksheet
 
    For Each sheet In Sheets
        sheet.Visible = True
    Next sheet
 
End Sub


 كيفية إعداد قائمة بأسماء أوراق العمل 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 & "!a1", _
TextToDisplay:=sht.Name
 
Next sht
End Sub


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

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
والى هنا انتهى درس اليوم
مع اللقاء ودرس جديد ان شاء الله
مع تحيات أخوكم
عبدالجيد أبو محمد وابراهيم





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





10-02-2018 11:38 صباحا
مشاهدة مشاركة منفردة [1]
Eslam Abdullah
menu_open
مشرف قسم الاكسيل
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 617
الجنس : ذكر
تاريخ الميلاد : 1-9-1995
الدعوات : 2
يتابعهم : 3
يتابعونه : 40
قوة السمعة : 3945
الاعجاب : 1066
 offline 
look/images/icons/i1.gif الحلقات التكرارية Loops مع شرح كيفية إعداد قائمة بأسماء أوراق العمل Worksheets
موضوع اكثر من رائع ونشاط ولا اروع
بارك الله فيك استاذ عبدالجيد
ويفضل كتابة الاكواد فى مربع حوار خاص به
تقبل وافر احترامى وتقديرى
واصل بلا فواصل 123

أثارت هذه المشاركة إعجاب: محمد حسن المحمد، عبدالجيد،






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


 







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



الساعة الآن 07:03 مساء

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