اذهب الي المحتوي
أوفيسنا

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

قام بنشر

بعد اعداد ماكرو معين للتطبيق علي خلية

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

و لاختيار مجموعة الخلاية المكلوبة و تطبيق نفس الماكرو عليها

نستخدم الكود التالي:

و ما يلي هو عدد 2 كود مع شرح لكل سطر

الاول لطريقة بسيطة للتطبيق

و الثاني ، مع بعض الاضافات ن مثل الغاء ظهور الاحداث علي الشاشة و عمل عداد يظهر فى شريط الحالية ليخبرنا بالتقدم فى التطبيق

مرفق ملف به الكودان مع الشرح

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

الشرح موجود مع الماكرو

اضغط ALT+F11

----

الاكواد :

Sub myloop1()

'تعريف متغير من أجل عدد الصفوف
  Dim MyRow As Long
'عد عدد الصفوف المختارة
  MyRow = selection.Rows.Count
'اختيار الخلية الاولي فى الخلايا المختارة
ActiveCell.Select
'بدء حلقة تكرارية للمرور علي جميع الصفوف
For i = 1 To MyRow



'ضع الكود الذي تريد تكراره هنــــــــــــا



'اختيار الخلية التي تلي الخلية الحالية - أسفلها
   ActiveCell.Offset(1, 0).Activate
'نهو الحلقة التكرارية للمرور علي جميع الصفوف
Next i

End Sub
و الثاني
Sub myloop2()

' by Mohamed Taher
' www.officena.net

'الغاء تفعيل اظهار ما يحدث علي الشاشة
Application.ScreenUpdating = False
'تعريف متغيران الاول لعدد الصفوف و الثاني لتثبيت العدد من أجل العداد
  Dim MyRow As Long, origraw As Long  '
'عد عدد الصفوف المختارة
  MyRow = selection.Rows.Count
'نقل العدد الي المتغير الخاص بتثبيت العدد
  origraw = MyRow
'اختيار الخلية الاولي فى الخلايا المختارة
ActiveCell.Select
'بدء حلقة تكرارية للمرور علي جميع الصفوف
For i = 1 To MyRow



'ضع الكود الذي تريد تكراره هنــــــــــــا



'اظهار العداد فى شريط الحالة
   Application.StatusBar = "Calculating ...." & _
   Format(i / origraw, "0.0%") & "       Please Wait......."
'اختيار الخلية التي تلي الخلية الحالية - أسفلها
   ActiveCell.Offset(1, 0).Activate
'نهو الحلقة التكرارية للمرور علي جميع الصفوف
Next i
'تمكين تفعيل اظهار ما يحدث علي الشاشة
    Application.ScreenUpdating = True
'الغاء ما كتب فى شريط الحالة أسفل الشاشة
    Application.StatusBar = False
End Sub

مثال لعمل حلقة علي كتابة رقم فى الخلايا المختارة

اختار الخلايامن أاعلي الي اسفل ثم شغل الماكرو

LOOP.rar

قام بنشر
  • 8 months later...
قام بنشر

السلام عليكم ...

بالنسبة للحلقة التكرارية ، ألا يكون من الأفضل استخدام For Each وذلك لأننا بها تحقق ميزتين :

- عدم الحاجة لتفعيل الخلية المختبرة في كل دورة (في المثال أعلاه).

- عدم الحاجة لتغيير قيمة المتغير الدال على الهدف المختبر في كل دورة.

قام بنشر

السلام عليكم

في المثال اعلاه تفعيل الخلية ليس هدفا و انما مجرد مثال علي ما يحدث من فعل داخل الحلقة

و الحلقة تعمل دون التأثر به ان الغيناه

أي ان المرور علي الصفوف مثال لتوضيح ما يحدث فى الحلقة التكرارية

ان لم يكن ردي مناسبا لما تقصد فارجو التوضيح اكثر

مع تحياتي

قام بنشر

السلام عليكم ...

الموضوع متصل بالكود الموضوع لاختبار الخلايا ، وفي كلتا الأحوال سيكون استخدام الحلقة التكرارية بالاعتماد على متغير (كديل) أقل كفاءة من استخدام الحلقة For Each

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

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

Important Information