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

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

قام بنشر (معدل)

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

الدرس السادس

6-Variables

المتغيرات

بصراحة كده الموضوع ده كبير

ولكن انا اخدت الى يمشينا وميعطلناش

لاننا زى مقولنا اننا مش مطلوب مننا

نكون محترفين

على العموم نبدأ الدرس

شروط تسمية المتغيرات :

طبعا لازم نعرف اننا علشان نستخدم المتغيرات

داخل الاكواد فلازم نقوم باعطاء كل متغير اسم يعبر

عنه

ازاى يعنى

يعنى مثلا انت عايز تعبر عن متغير عدد او نصى او تاريخ

يبقى لازم تعطى المتغير ده اسم معين

الاسم ده بقى

1-يجب الا يبدأ برقم يعنى مينفعش نسمى المتغير بالشكل ده

  12345  او 12hima على سبيل المثال

2-ان ممكن تستخدم الارقام فى تسمية المتغير ولكن

  يشترط ان يبدأ الاسم بحرف على سبيل المثال h123

3-لايجوز ان يحتوى اسم المتغير على مسافات او نقطه

 او رموز مثل(( ؟ ، * ، ) ، ( ، /......... إلخ )) وعلى سبيل المثال

  hima  laila   او   hima.laila  او hima-laila او hima*laila وهكذا

 ولكن يمكن استخدام المسافه السفليه _  على سبيل المثال hima_laila

4-يجب عدم تكرار تسمية المتغير

انواع المتغيرات

untitled.thumb.JPG.6482e8351d42c19660ebd

نشوف ازاى يتم الاعلان عن المتغير داخل الكود

 لو احنا عايزن نعلن عن متغير ذات قيمه عدديه

يبقى هيكون بالشكل ده

هنفترض ان اسم المتغير هو h

Dim H As Integer 

ويجب ان نشير اناا يجب ان نبدأ

بكلمة dim وذلك للاشاره باننا بصدد التعبير عن المتغيرات

كما يمكننا التعبير عن اكثر من متغير فى سطر واحد

فلو اننا نريد التعبير عن متغيرين فى نفس السطر

وليكن اسمهما h و m

يبقى سطر الكود هيكون بالشكل ده

Dim H,m As Integer

وهنا سنجد ان المتغير h تم تعريفه على انه من النوع Variant

اما المتغير m فتم تعريفه على انه من النوع العددى

ثم تأتى مرحلة اعطاء القيمه للمتغير الذى

قمنا بتعريفه مثلا يتم اعطاء القيمه 10

للمتغير h والقيمه 20 للمتغير m

وسيكون شكل الكود كالاتى

Dim H,m As Integer

h=10:m=20

واذا اردنا مثلا الاعلان عن متغير من نوع النصوص

سيكون هكذا

Dim h2 As String="hima" 

لاحظ اننا قمنا بتغير الاسم الى h2 لانه كما ذكرنا من قبل

انه لايجب تكرار تسمية المتغير

كما انه يجب الاشاره انه فى حالة الاعلان عن متغير من نوع النصوص

يجب وضع الاسم بين علامتي التنصيص "

ناخد ميثال على الماشى

Sub Variables()
Dim h As Integer
h = 101
Dim h1 As Single
h1 = 101.15
Dim h2 As String
h2 = "ابراهيم محمد ابراهيم"
Dim h3 As Date
h3 = "24 / 9 / 1981"
Dim h4 As Worksheet
Set h4 = Sheet1
' ............................................................
[a34] = h
[a36] = h1
[a38] = h2
[a40] = h3
[a42] = h4.Name

End Sub

اتمنى ان يكون الدرس مفيدا

مرفق شيت اكسيل به التطبيقات

 learnvba.rar

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

learnvba.rar

تم تعديل بواسطه إبراهيم ابوليله
  • Like 1
قام بنشر

أخي الحبيب إبراهيم

وجب تصحيح نقط معينة وهو أنه لا يجوز الإعلان عن متغير وتعيين قيمة له في نفس السطر

Dim H As Integer=10

يجوز ذلك في لغة الفيجوال بيزيك دوت نت أما في VBA سيعطيك خطأ

 

نقطة أخرى بالنسبة للسطر

Dim H,m As Integer

هنا لم يتم الإعلان عن المتغيرين من النوع عدد ..فقط المتغير m هو المتغير العددي أما المتغير  H في هذه الحالة يعتبر من النوع Variant

 

للتأكد من صحة مقولي قم بنسخ الكود التالي في موديول

Sub Test()
    Dim H, m As Integer
End Sub

قم بوضع مؤشر الماوس في سطر

End Sub

اضغط F9 لوضع نقطة وقوف BreakPoint سيكون لونها باللون الأحمر الغامق

 

روح لقايمة View وأظهر نافذة Locals

ثم قم بتنفيذ الكود ستجد في النافذة تفاصيل كل متغير

أرجو أن أكون قد وفقت في توصيل المعلومة

  • Like 6
قام بنشر

اخى واستاذى ياسر

بالفعل كما قلت

انه من الخطأ التعبير فى لغة vba

عن المتغير واعطاءه قيمة فى نفس السطر

............................................................

اما بخصوص

 الإعلان عن المتغيرين من النوع عدد ..فقط المتغير m هو المتغير العددي أما المتغير  H في هذه الحالة يعتبر من النوع Variant

فقد حاولت التطبيق

ولكنى فشلت

فحينما وضع مؤشر الماوس فى سطر الكود

وعند الضغط على f9

ظهرت لى هذه الرساله

untitled.thumb.JPG.bdec3b26d4fe0b28e7242

على العموم انا اسعدنى جدا متابعتك للموضوع

علشان لو فيه توضيح او اخطاء

تلحقنا فيها

منتحرمش منك ياريس

تقبل تحياتى

  • Like 3
قام بنشر

السلام عليكم:

جزاكم الله خيراً أساتذتنا الكرام 

قال الله تعالى :" وفوق كل ذي علمٍ عليمٌ "...فالعلم بحر مداه واسع وغوره عميق وشاطئه طويل ...ونحن كمن يرسو على ضفة ..أمام علم الله الواسع

ليس العيب أن نقع في الخطأ بل العيب الاستمرار فيه

أشكر للأستاذ الكريم ياسر متابعته وتدقيقه وتصحيحه،كما أشكر للأستاذ إبراهيم مسارعته لتعديل

النقاط التي وقع فيها لبس .

وبذلك ينال الدارسون أمثالي حصتهم من العلم دون أي إشكال

تقبلوا تحياتنا العطرة.

 

  • Like 4
قام بنشر

وضع مؤشر الماوس فى سطر الكود

راجع المشاركة ستجدني قلت ضع موشر الماوس في آخر سطر ألا وهو

End Sub

تقبلوا تحياتي وكل عام وأنتم بخير وأراكم إن شاء الله بعد أجازة العيد

في رعاية الله

  • Like 3
قام بنشر

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

" ... ولا يظهر نور الفجر إلا بعد الظلام الحالك  "

ظلام غير الفاهمين أمثالي .. وَ

رُبَّ ضارّة نافعة

لولا الهفوة البسيطة لأستاذنا الفاضل ابراهيم أبو ليلة ما كنّا لنتعلم و نفهم تفاصيل أخرى من أستاذنا الغالي ياسر خليل أبو البراء

بارك الله فيكم جميعًا .. جزاكم الله خيرًا و زادها بميزان حسناتكم

                                     خالص احتراماتي

55faee53d09f1___.thumb.gif.8e5d1ef769127

  • Like 1
قام بنشر

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

  • Like 1
قام بنشر

شكرا استاذنا القدير على الدروس الرائعة 

وفقك الله ونفع بك

واود الاستفسار في هذا الموضع عن تحديد الخلايا التي تحتوي على قيم .

وتقبل خالص تحياتي

أخى مختار

ممكن التوضيح اكتر

عما تريد الاستفسار عنه

تقبل تحياتى

نعم استاذي القدير

يبدوا اني عملت اقتباس ولم يتم او اني اضفت رد دون اقتباس الموضوع

عموما استاذي 

بالنسبة لموضوع تحديد الخلايا  او تلوينها او تلوين حدود الخلايا 

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

قام بنشر

وضع مؤشر الماوس فى سطر الكود

راجع المشاركة ستجدني قلت ضع موشر الماوس في آخر سطر ألا وهو

End Sub

تقبلوا تحياتي وكل عام وأنتم بخير وأراكم إن شاء الله بعد أجازة العيد

في رعاية الله

اخى ياسر بالفعل

طلع من النوع Variant

وبكده ضفت معلومه جديده الى

الا وهى ايه

ياريت لو كانت صح او غلط ترد عليا

علشان اضيف المعلومه الى قاموسى

ان فى حالة عدم كتابة نوع المتغير

يتم ارجاع الوضع الافتراضى للمتغير

وتعريفه على انه من النوع Variant

....................................

وياريت يا اخ  ياسر لو تضيف الينا

شويه معلومات بسيطه عن المتغيرات

خصوصا Variant

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

تقبل تحياتى

  • Like 1
قام بنشر (معدل)

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

الدرس السادس

7-Conditions

الشروط

وسوف نتناول فى هذه الدرس الاتى

انشاء الشرط بواسطة if

استخدام اكثر من شرط داخل الكود وذلك باستخدام Else if

استخدام Select Case

بعض الشروط التى شائعة الاستخدام

...........................................

انشاء الشرط بواسطة if

يتم انشاء الشرط بواسطة if وطالما كان هناك شرط اذا لابد

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

ففى حاله توافر الشرط نستخدم كلمة then وفى حالة عدم توافر

الشرط نستخدم كلمة else

ثم فى النهاية لابد ان يتم اقفال الشرط if ب end if

If الشرط Then 									
  ماذا سيحدث فى حالة تحقق الشرط									
Else فى حالة عدم تحقق الشرط									
  ماذا سيحدث فى حالة عدم تحقق الشرط									
End If نهاية قاعدة الشرط 									

مــثــــــــــــــال

نريد فى حالة وجود الرقم 10 فى  الخليه a17 يتم كتابة الرقم صحيح فى الخليه b17  واذا كان الرقم لايساوى

الرقم 10 يتم كتابةالرقم خطأ  فى الخليه b17

شاهد الصوره

 

untitled1.thumb.JPG.b2e2f0cd5d37ef17aeff

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

Sub Conditions()
   If [a17] = 10 Then
   '   A17 هنا نقول انه فى حالة وجود الرقم 10 فى الخليه
   'Then يتم
   '  الرقم صحيح B17 اعطاء الخليه
   [B17] = "الرقم صحيح"
Else
'Else  فى حالة عدم وجود ارقام غير الرقم10
   '  الرقم خطأ A17 اعطاء الخليه
   [B22] = "الرقم خطأ"
End If
 'End If.....    IFنهاية الشطر
End Sub

استخدام اكثر من شرط داخل الكود وذلك باستخدام Else if

مـثـــــــــــــــــــال

نريد اذا كانت الخليه a23 بها  الرقم 10 يتم كتابة a10 فى الخليه a24

واذا كانت a23 بها الرقم 20 يتم  كتابة a20 فى الخليه A24

واذا كانت a23 بها الرقم 30  يتم كتابة a30 فى الخليه A24

شاهد الصوره

untitled.thumb.JPG.a96899a84bb88e879e43e

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

Sub Conditions1()
       If Range("A23") = 10 Then
        Range("A24") = "a10"
    ElseIf Range("A23") = 20 Then
        Range("A24") = "a20"
    ElseIf Range("A23") = 30 Then
       Range("A24") = "a30"
Else
       Range("A24") = "خطأ"
End If
End Sub

استخدام Select Case

يمكننا استخدا مها فى حالة توافر اكثر من شرط

Select Case كتابة معطيات التى يبنى عليها الشرط			
			
   Case  Is  الشرط الاول			
النتيجه			
   Case  Is  الشرط الثانى			
النتيجه			
   Case  Is  الشرط الثالث			
النتيجه			
   Case Else  ' فى حالة عدم تحقق اى من الشروط			
النتيجه			
End Select '    Select Case نهاية   			
مـثـــــــــــــــــــال

نريد اذا كانت الخليه a45 بها الرقم 10 يتم كتابة a10 فى الخليه a46

واذا كانت a45 بها الرقم 20 يتم  كتابة a20 فى الخليه A46

يتم كتابة a30 فى الخليه A46

شاهد الصوره

untitled.thumb.JPG.a96899a84bb88e879e43e

 

قوم بانشاء قاعده بيانات مكون

من عمود واحد به اسماء معينه من A الى D

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

واذا كان هذا الاسم موجود ضمن

الاسماء يتم كتابة الاسم صحيح

فى الخليه B22 واذا كان غير موجود

ينم كتابة الاسم خطأ

untitled.JPG

تم تعديل بواسطه إبراهيم ابوليله
  • Like 2
قام بنشر (معدل)

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

الدرس السابع

7-Conditions

الشروط

وسوف نتناول فى هذه الدرس الاتى

انشاء الشرط بواسطة if

استخدام اكثر من شرط داخل الكود وذلك باستخدام Else if

استخدام Select Case

استخدام or مع if

استخدام and مع if

بعض الشروط شائعة الاستخدام

...........................................

انشاء الشرط بواسطة if

يتم انشاء الشرط بواسطة if وطالما كان هناك شرط اذا لابد

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

ففى حاله توافر الشرط نستخدم كلمة then وفى حالة عدم توافر

الشرط نستخدم كلمة else

ثم فى النهاية لابد ان يتم اقفال الشرط if ب end if

If الشرط Then 									
  ماذا سيحدث فى حالة تحقق الشرط									
Else فى حالة عدم تحقق الشرط									
  ماذا سيحدث فى حالة عدم تحقق الشرط									
End If نهاية قاعدة الشرط 									

مــثــــــــــــــال

نريد فى حالة وجود الرقم 10 فى  الخليه a17 يتم كتابة الرقم صحيح فى الخليه b17  واذا كان الرقم لايساوى

الرقم 10 يتم كتابةالرقم خطأ  فى الخليه b17

شاهد الصوره

 

untitled1.thumb.JPG.b2e2f0cd5d37ef17aeff

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

Sub Conditions()
   If [a17] = 10 Then
   '   A17 هنا نقول انه فى حالة وجود الرقم 10 فى الخليه
   'Then يتم
   '  الرقم صحيح B17 اعطاء الخليه
   [B17] = "الرقم صحيح"
Else
'Else  فى حالة عدم وجود ارقام غير الرقم10
   '  الرقم خطأ A17 اعطاء الخليه
   [B22] = "الرقم خطأ"
End If
 'End If.....    IFنهاية الشطر
End Sub

استخدام اكثر من شرط داخل الكود وذلك باستخدام Else if

مـثـــــــــــــــــــال

نريد اذا كانت الخليه a23 بها  الرقم 10 يتم كتابة a10 فى الخليه a24

واذا كانت a23 بها الرقم 20 يتم  كتابة a20 فى الخليه A24

واذا كانت a23 بها الرقم 30  يتم كتابة a30 فى الخليه A24

شاهد الصوره

untitled.thumb.JPG.a96899a84bb88e879e43e

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

Sub Conditions1()
       If Range("A23") = 10 Then
        Range("A24") = "a10"
    ElseIf Range("A23") = 20 Then
        Range("A24") = "a20"
    ElseIf Range("A23") = 30 Then
       Range("A24") = "a30"
Else
       Range("A24") = "خطأ"
End If
End Sub

استخدام Select Case

يمكننا استخدا مها فى حالة توافر اكثر من شرط

Select Case كتابة معطيات التى يبنى عليها الشرط			
			
   Case  Is  الشرط الاول			
النتيجه			
   Case  Is  الشرط الثانى			
النتيجه			
   Case  Is  الشرط الثالث			
النتيجه			
   Case Else  ' فى حالة عدم تحقق اى من الشروط			
النتيجه			
End Select '    Select Case نهاية   			
مـثـــــــــــــــــــال

نريد اذا كانت الخليه a45 بها الرقم 10 يتم كتابة a10 فى الخليه a46

واذا كانت a45 بها الرقم 20 يتم  كتابة a20 فى الخليه A46

يتم كتابة a30 فى الخليه A46

شاهد الصوره

untitled.thumb.JPG.a96899a84bb88e879e43e

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

Sub Conditions2()
    Select Case Range("A45")
       Case Is = 10
         Range("A46") = "a10"
    Case Is = 20
         Range("a46") = "a20"
    Case Is = 30
        Range("a46") = "a30"
         Case Else
               Range("a46") = "خطأ"
        End Select
       
End Sub

استخدام or مع if

مـثـــــــــــــــــــال

قوم بانشاء قاعده بيانات مكون

من عمود واحد به اسماء معينه من A الى D

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

واذا كان هذا الاسم موجود ضمن

الاسماء يتم كتابة الاسم صحيح

فى الخليه B59 واذا كان غير موجود

يتم كتابة الاسم خطأ

untitled.thumb.JPG.2fd416f7e757bffbf834f

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

Sub Conditions3()
   If [A59] = [a54] Or [A59] = [A55] Or [A59] = [A56] Or [A59] = [a57] Then
   '   A59 هنا نقل انه فى حالة وجود الاسم الموجود فى الخليه
   ' ضمن الاسماء الموجوده فى الخلايا
   ' A54--او-A55--او-A56--او-A57
   'Then يتم
   '  الاسم صحيح B59 اعطاء الخليه
   [b59] = "الاسم صحيح"
Else
'Else  فى حالة عدم وجود الاسم ضمن الاسماء يتم
   '  الاسم خطأ B59 اعطاء الخليه
   [b59] = "الاسم خطأ"
End If
 'End If.....    IFنهاية الشطر
End Sub

استخدام and مع if

مـثـــــــــــــــــــال

نقوم بانشاء قاعده بيانات مكونه  من عمودين واحد به اسماء معينه من A الى D

والثانى به ارقام من 1 الى 4 ونريد عند كتابة اسم معين فى الخليه A68

وكتابة رقم معين فى الخليه b68 واذا كان هذا الاسم  يخص الرقم

 يتم كتابة الاسم صحيح فى الخليه B59 واذا كان لا يخص هذا

هذا الرقم يتم كتابة الاسم خطأ

untitled.thumb.JPG.3d49dedb9608339b09624

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

Sub Conditions4()
   If ([A68] = [a63] And [b68] = [b63]) Or ([A68] = [a64] And [b68] = [b64]) Or _
   ([A68] = [a65] And [b68] = [b65]) Or ([A68] = [a66] And [b68] = [b66]) Then
   '   A68 هنا نقل انه فى حالة وجود الاسم الموجود فى الخليه
   ' ضمن الاسماء الموجوده فى الخلايا
   ' A63--او-A64--او-A65--او-A66
      '   b68 وفى حالة وجود الاسم الموجود فى الخليه
   ' ضمن الاسماء الموجوده فى الخلايا
   ' b63--او-b64--او-b65--او-b66

   'Then يتم
   '  الاسم صحيح B69 اعطاء الخليه
   [b69] = "الاسم صحيح"
Else
'Else  فى حالة عدم وجود الاسم ضمن الاسماء يتم
   '  الاسم خطأ 659 اعطاء الخليه
   [b69] = "الاسم خطأ"
End If
 'End If.....    IFنهاية الشطر
End Sub

بعض الشروط شائعة الاستخدام

If IsNumeric(Range("A75")) = True Then ' هنا نشترط ان تكون القيمه عدديه										
If IsNumeric(Range("A76")) Then  ' هنا نشترط ان تكون القيمه عدديه										
If IsNumeric(Range("A77")) = FALSE Then ' هنا نشترط ان تكون القيمه غير عدديه										
If NOT IsNumeric(Range("A78")) Then ' هنا نشترط ان تكون القيمه غير عدديه--اى نصيه										
If IsDate(Range("79")) Then ' هنا نشترط ان تكون القيمه عباره عن تاريخ										
If IsEmpty(Range("80")) Then ' هنا نشترط عدم ادخال شىء اى ان تكون الخايه فارغه										
Sub ConditionsE()
If IsNumeric(Range("A75")) = True Then ' هنا نشترط ان تكون القيمه عدديه
MsgBox " قيمة الخليه A75 عدديه "
End If
If IsNumeric(Range("A76")) = True Then ' هنا نشترط ان تكون القيمه عدديه
MsgBox " قيمة الخليه A76 عدديه "
End If
If IsNumeric(Range("A77")) = False Then ' هنا نشترط ان تكون القيمه غير عدديه
MsgBox " قيمة الخليه A77 غير عدديه "
End If
If Not IsNumeric(Range("A78")) Then  ' هنا نشترط ان تكون القيمه غير عدديه
MsgBox " قيمة الخليه A78 غير عدديه "
End If
If IsDate(Range("A79")) Then   ' هنا نشترط ان تكون القيمه تاريخ
MsgBox " قيمة الخليه A79 تاريخ "
End If
If IsEmpty(Range("A80")) Then   ' هنا نشترط ان تكون الخليه فارغه
MsgBox " قيمة الخليه A80 فارغه "
End If
    End Sub

اتمنى ان يكون الدرس مفيدا

مرفق شيت اكسيل به التطبيقات

 learnvba.rar

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

untitled.JPG

learnvba.rar

تم تعديل بواسطه إبراهيم ابوليله
  • Like 2
قام بنشر

السلام عليكم

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

اضافة بسيطة للشروط هناك If IsError   لاختبار ما اذا كانت الخلية بها خطأ مثل #N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, or #NULL!

Sub Mokhtar_IsError()

If IsError(Range("C1").Value) Then
    MsgBox "'C1 قيمة خاطئة فى الخلية  "
Else
    MsgBox "'C1 قيمة صحيحة فى الخلية  "
End If

End Sub

يمكن تعديل الكود السابق ونستخدم  Select Case

Sub Mokhtar_IsError2()

Dim msg As String

If IsError(Range("C1").Value) Then

Select Case Range("C1").Value

Case CVErr(xlErrDiv0): msg = "#DIV/0!"
Case CVErr(xlErrNA): msg = "#N/A"
Case CVErr(xlErrName): msg = "#NAME?"
Case CVErr(xlErrNull): msg = "#NULL!"
Case CVErr(xlErrNum): msg = "#NUM!"
Case CVErr(xlErrRef): msg = "#REF!"
Case CVErr(xlErrValue): msg = "#VALUE!"

End Select

MsgBox msg & "  " & "نوع الخطأ فى الخلية "
Else
MsgBox "لا توجد أى قيم خاطئة فى الخلية "
End If
End Sub

 

لو عايز تجرب  الكود اكتب  فى 'C1 المعادلة دى  5*moktar=     النتجة قيمة خطأ لاننا ضربنا نص  فى رقم 

تحياتى

 

 

قام بنشر

السلام عليكم

 

استاذ ابراهيم

دروس ممتعة بالذات . درس الشروط ... مزيد من الامثلة بارك الله فيك

 

اخى محمد

صبرا

فسوف نتعرف فى الدروس القادمه على

كيفية استخدام الشروط مع الرسائل

ومع الحلقات التكراريه

تقبل تحياتى

 

  • Like 1
قام بنشر (معدل)

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

اخوانى الافاضل

نودان نذكر الاخوه

بالدعاء لاخينا واستاذنا الفاضل

عماد الحسامى

رحمه الله

واعترافا منا بما قدمه لنا استاذنا عماد

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

وبما كان له من فضل علينا فيما نحن عليه

ارفق اليكم شرح الاستاذ عماد

لكيفية استخدام الشروط فى vba

untitled.thumb.JPG.c867d23b19a536a4c31c4

untitled.thumb.JPG.d5bbea253e3f99c9ddbd6

untitled.thumb.JPG.70461f10b5d4f67fda232

untitled.JPG

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

HOSAMI IF THEN.rar

 

تم تعديل بواسطه إبراهيم ابوليله
قام بنشر

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

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

                                                                                                                          وافر احتراماتي

 

قام بنشر

اخى عبد العزيز

اشكرك على المتابعه المستمره

للموضوع

وبالفعل ان شاء الله يتم استكمال الدروس

رغم قله المشاهده والردود

التى احيانا يكون لها تاثير سلبى

ولكن مستمرون باذن الله

حت انتهاء الفكره التى انشئنا الموضوع من اجلها

تقبل تحياتى

قام بنشر

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

موضوع هام نرجو متابعته بنفس الحماسة التي بدأتم بها ....نحن بانتظار المزيد...والله كريم يحب الكريم

تقبل تحياتي العطرة...

هدية أرجو أن تعجبك لو تابعتني بموضوع فكرة تدوين الأبحاث الجديدة لوجدتها بانتظارك ...هدية لكم ج1

  • Like 1
قام بنشر

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

موضوع هام نرجو متابعته بنفس الحماسة التي بدأتم بها ....نحن بانتظار المزيد...والله كريم يحب الكريم

تقبل تحياتي العطرة...

هدية أرجو أن تعجبك لو تابعتني بموضوع فكرة تدوين الأبحاث الجديدة لوجدتها بانتظارك ...هدية لكم ج1

اخى محمد

مشكورا على الهديه الجميله

الفكره اكثر من رائعه

انا بعملها على ملف اكسيل

وانت تعملها على بى دى اف

كده يبقى محدش ليه حجه فى انه يتعلم

منتحرمش من خدماتك

ربنا يخليك لينا

وتفضل منور المنتدى كده على طول

تقبل تحياتى

  • Like 1
قام بنشر (معدل)

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

الدرس السادس

8-Loop

الحلقات التكراريه

وسوف نتناول فى هذه الدرس الاتى

لماذا نستخدم الحلقات التكراريه

انواع الحلقات التكراريه

الخروج من الحلقه التكراريه

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

.........................................................................

لماذا نستخدم الحلقات التكراريه

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

التى يجب معرفتها حينما يتم الدخول الى عالم vba

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

ولتوضيح ذلك راجع المثال الاتى

نفترض اننا لدينا مجموعه من الارقام مثلا 7 ارقام (1-2-3-4-5-6-7)

ونريد ادخال هذه الارقم فى السطر الثامن بداية من العمود الخامس اى العمود e

فكيف سنقوم بعمل ذلك

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

هيستخدم الكود الاتى

Sub enterdata()
[e8] = "1"
[f8] = "2"
[g8] = "3"
[h8] = "4"
[i8] = "5"
[j8] = "6"
[k8] = "7"
End Sub

اى سيقوم بالاشاره الى كل خليه على حده

واعطاء كل خليه قيمتها  كما هو متضح من الصوره

وبالتالى بعد كتابة هذه الكود وتخصيص زر لتنفيذه

او بالوقوف داخل الكود بالماوس ثم الضغط على f5

سوف يتم ملئ الخلايا بالبيانات كما فى الصوره

untitled.thumb.JPG.fd50badf36cba26790287

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

انواع الحلقات التكراريه

1- FOR

2- WHILE

3- DO

................................................................................................................................................................................................................................................................

الحلقه الاولى                                                    for …next

هذه الحلقه تبدأ بكلمة FOR  وتنتهى بكلمة NEXT

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

للتوضيح اكتر

For بداية الحلقه =  اسم الحلقه To طريقه تنفيذ الحلقه] نهايةالحلقه]
[ماسيتم تنفيذه داخل الحلقه]
[Exit For] الخروج من الحلقه

Next استكمال الحلقه حت النهاية

 

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

وليكن مثلا H

ثم يجب ان يكون لها بدايه ولها نهايه

وليكن ستبدأ من 1 وتنتهى فى 10

ثم سيكون هناك ما ينفذ داخل الحلقه

والمقصود بطريقة تنفيذ الحلقه اى هل سيتم تنفيذها

خطوه بخطوه وهذا هو الشائع فى الاستخدام ام كل خطويتن

ام كل ثلاث خطوات وهكذا

ولتطبيق ذلك

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

 اننا نريد ادخال الارقام  من 1 الى 4 فى السطر 26  بداية من العمود 8

كيف سنقوم بعمل ذلك

1-نعطى الحلقه اسم معين   FOR H                                H

2-نحدد البدايه  8  ونحدد النهاية 11                

     FOR H =8 TO 11

    لاحظ ان عدد الحلقات هنا 4 عباره عن 8و9و10و111

3-ماسيتم تنفيذه

 Cells(26, h) = h - 7

4-استكمال الحلقه            NEXT

 

وبالتالى سيكون شكل الكود كالاتى

Sub enterdata_for()
For h = 8 To 11
' h----- متغير تم تعريه على انه يبدأ من 8 وينتهى عند 11
' اى ان عدد حلقاته هى 4 عباره عن 8ثم9ثم10ثم11
Cells(26, h) = h - 7
' هنا يتم تنفيذ الكود
' هنا نقول ان الخليه التى تقع فى السطر26 وفى العمود من8الى11
' مطروحا منه 7 ارقام ليصبح قيمة المتغير تساوى1hتساوى قيمة المتغير
' Cells(26, H)---  الرقم26هنا يدل على رقم السطر الذى سينفذ فيه الكود
' Cells(26, H)---  عباره عن العمود الذى سينفذ فيه الكود وبذلك يتضحh
'  hلنا ان الكود سوف ينفذ على الاعمده من 8الى11 لانها تساوى قيمة المتغير
'  h-7    يبدأ من الرقم8وينتهى عند الرقم11 فحينما ينم طرحhبما ان المتغير
' الرقم7 من المتغير بذلك تصبح قيمة المتغير تبدأ من الرقم1وتنتهى عند الرقم4
'وبذلك يكون تنفيذ الكود كالاتى
' الخليه فى السطر26وفى العمود5تساوى الرقم1ثم
' الخليه فى السطر26وفى العمود6تساوى الرقم2ثم
' الخليه فى السطر26وفى العمود6تساوى الرقم3ثم
' وهكذا حت نصل الى اخر الحلقه التكراريه اى العمود11
Next '  hتكرار عمل الكود حتى نهاية المتغير
' next---- forاقفال الحلقه التكراريه
End Sub

 

تم تعديل بواسطه إبراهيم ابوليله
  • Like 1
  • Thanks 1
قام بنشر

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

الدرس السادس

8-Loop

الحلقات التكراريه

وسوف نتناول فى هذه الدرس الاتى

لماذا نستخدم الحلقات التكراريه

انواع الحلقات التكراريه

الخروج من الحلقه التكراريه

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

.........................................................................

لماذا نستخدم الحلقات التكراريه

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

التى يجب معرفتها حينما يتم الدخول الى عالم vba

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

ولتوضيح ذلك راجع المثال الاتى

نفترض اننا لدينا مجموعه من الارقام مثلا 7 ارقام (1-2-3-4-5-6-7)

ونريد ادخال هذه الارقم فى السطر الثامن بداية من العمود الخامس اى العمود e

فكيف سنقوم بعمل ذلك

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

هيستخدم الكود الاتى

Sub enterdata()
[e8] = "1"
[f8] = "2"
[g8] = "3"
[h8] = "4"
[i8] = "5"
[j8] = "6"
[k8] = "7"
End Sub

اى سيقوم بالاشاره الى كل خليه على حده

واعطاء كل خليه قيمتها  كما هو متضح من الصوره

وبالتالى بعد كتابة هذه الكود وتخصيص زر لتنفيذه

او بالوقوف داخل الكود بالماوس ثم الضغط على f5

سوف يتم ملئ الخلايا بالبيانات كما فى الصوره

untitled.thumb.JPG.fd50badf36cba26790287

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

انواع الحلقات التكراريه

1- FOR

2- WHILE

3- DO

................................................................................................................................................................................................................................................................

الحلقه الاولى                                                    for …next

هذه الحلقه تبدأ بكلمة FOR  وتنتهى بكلمة NEXT

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

للتوضيح اكتر

For بداية الحلقه =  اسم الحلقه To طريقه تنفيذ الحلقه] نهايةالحلقه]
[ماسيتم تنفيذه داخل الحلقه]
[Exit For] الخروج من الحلقه

Next استكمال الحلقه حت النهاية

 

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

وليكن مثلا H

ثم يجب ان يكون لها بدايه ولها نهايه

وليكن ستبدأ من 1 وتنتهى فى 10

ثم سيكون هناك ما ينفذ داخل الحلقه

والمقصود بطريقة تنفيذ الحلقه اى هل سيتم تنفيذها

خطوه بخطوه وهذا هو الشائع فى الاستخدام ام كل خطويتن

ام كل ثلاث خطوات وهكذا

ولتطبيق ذلك

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

 اننا نريد ادخال الارقام  من 1 الى 4 فى السطر 26  بداية من العمود 8

كيف سنقوم بعمل ذلك

1-نعطى الحلقه اسم معين   FOR H                                H

2-نحدد البدايه  8  ونحدد النهاية 11                

     FOR H =8 TO 11

    لاحظ ان عدد الحلقات هنا 4 عباره عن 8و9و10و111

3-ماسيتم تنفيذه

 Cells(26, h) = h - 7

4-استكمال الحلقه            NEXT

 

وبالتالى سيكون شكل الكود كالاتى

Sub enterdata_for()
For h = 8 To 11
' h----- متغير تم تعريه على انه يبدأ من 8 وينتهى عند 11
' اى ان عدد حلقاته هى 4 عباره عن 8ثم9ثم10ثم11
Cells(26, h) = h - 7
' هنا يتم تنفيذ الكود
' هنا نقول ان الخليه التى تقع فى السطر26 وفى العمود من8الى11
' مطروحا منه 7 ارقام ليصبح قيمة المتغير تساوى1hتساوى قيمة المتغير
' Cells(26, H)---  الرقم26هنا يدل على رقم السطر الذى سينفذ فيه الكود
' Cells(26, H)---  عباره عن العمود الذى سينفذ فيه الكود وبذلك يتضحh
'  hلنا ان الكود سوف ينفذ على الاعمده من 8الى11 لانها تساوى قيمة المتغير
'  h-7    يبدأ من الرقم8وينتهى عند الرقم11 فحينما ينم طرحhبما ان المتغير
' الرقم7 من المتغير بذلك تصبح قيمة المتغير تبدأ من الرقم1وتنتهى عند الرقم4
'وبذلك يكون تنفيذ الكود كالاتى
' الخليه فى السطر26وفى العمود5تساوى الرقم1ثم
' الخليه فى السطر26وفى العمود6تساوى الرقم2ثم
' الخليه فى السطر26وفى العمود6تساوى الرقم3ثم
' وهكذا حت نصل الى اخر الحلقه التكراريه اى العمود11
Next '  hتكرار عمل الكود حتى نهاية المتغير
' next---- forاقفال الحلقه التكراريه
End Sub

ويكون ناتج الكود بهذا الشكل

untitled.thumb.JPG.57039c09d4ea7b2fe04cb

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

بمعنى لو اننا اردنا مثلا تنفيذ نفس الكود على الخلايا من h23 الى h26

اى فى الخلايا h23 و h24 و h25 و h26

كيف سيكون شكل الكود

الكود هيكون نفس الكود السابق ولكن ما سيختلف هو

اننا سوف نعيد تغير قيمة المتغير h الخاص بالحلقه التكراريه ليصبح من 23 الى 26

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

للتوضيح اكثر

الفكره هكلها محصوره فى السطرين دول 

For h = 8 To 11

هنا طبعا قيمة المتغير h الخاص بالحلقه التكراريه من 8 الى 11

احنا عايزين نخليه يبقى من 23 الى 26

يبقى هيكون بالشكل ده

For h = 23 To 26

وكمان فى السطر ده

Cells(26, h) = h - 7

وطبعا احنا قولنا ان الجزئيه دى

Cells(26

تعنى ان الكود سوف ينفذ على السطر 26

والجزئيه دى

Cells( , h)

تعنى انه هينفذ على العمود h وطبعا h احنا معرفينه على انه من8 الى 11

اى انه سينفذ على العمود 8 ثم العمود 9 ثم العمود10 ثم العمود11

....................................................................................................

طب حنا عايزين ننفذ الكود على العمود h اى العمود رقم 8

يبقى سطر الكود هيكون بالشكل ده

Cells( , 8)

وعلى السطور من 23 الى 26  وبما اننا عرفنا h على انه من 23 الى 26

يبقى سطر الكود هيصبح بالشكل ده

Cells(h, )

وفى النهاية هنلاقى ان سطر الكود بالكامل بالشكل ده

Cells(h,8 )

اى ان الكود سينفذ على السطور h الى احنا عرفناها على انها من 23 الى 26

وعلى العمود رقم 8

وبعد كده تأتى الجزئيه دى

 = h - 7

ولاننا كنا معرفين h يبدأ من الرقم 8 فطرحنا من h الرقم 7 للحصول على الرقم 1

الى هو اول رقم احنا عايزين ندخله فلا او خليه

وبما اننا لسه بردو عايزين نخلى الرقم 1 هو اول رقم يتم ادخاله

ولكننا قمنا بتغير قيمة المتغير h لتصبح من 23

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

وبالتالى سنجد سطر الكود هيكون كده

= h - 22

وفى النهاية سيكون شكل الكود كده

Sub enterdata_for1()
Dim h As Integer
For h = 23 To 26
Cells(h, 8) = h - 22
Next
End Sub

ويكون ناتج الكود بهذا الشكل

untitled.thumb.JPG.92760751de57d035b292d

اتمنى ان اكون قد وفقت فى هذا الدرس

انتظروا باقى الدروس

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

  • Like 1
قام بنشر (معدل)

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

الدرس السادس

8-Loop

الحلقات التكراريه

سوف يتم اضافة شرح حلقتين فى المشاركة التاليه

الحلقه الثانيه                         While

الحلقه الثالثه                       Do

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

تم تعديل بواسطه إبراهيم ابوليله
قام بنشر

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

الدرس السادس

8-Loop

الحلقات التكراريه

وسوف نتناول فى هذه الدرس الاتى

لماذا نستخدم الحلقات التكراريه

انواع الحلقات التكراريه

الخروج من الحلقه التكراريه

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

.........................................................................

لماذا نستخدم الحلقات التكراريه

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

التى يجب معرفتها حينما يتم الدخول الى عالم vba

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

ولتوضيح ذلك راجع المثال الاتى

نفترض اننا لدينا مجموعه من الارقام مثلا 7 ارقام (1-2-3-4-5-6-7)

ونريد ادخال هذه الارقم فى السطر الثامن بداية من العمود الخامس اى العمود e

فكيف سنقوم بعمل ذلك

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

هيستخدم الكود الاتى

Sub enterdata()
[e8] = "1"
[f8] = "2"
[g8] = "3"
[h8] = "4"
[i8] = "5"
[j8] = "6"
[k8] = "7"
End Sub

اى سيقوم بالاشاره الى كل خليه على حده

واعطاء كل خليه قيمتها  كما هو متضح من الصوره

وبالتالى بعد كتابة هذه الكود وتخصيص زر لتنفيذه

او بالوقوف داخل الكود بالماوس ثم الضغط على f5

سوف يتم ملئ الخلايا بالبيانات كما فى الصوره

untitled.thumb.JPG.fd50badf36cba26790287

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

انواع الحلقات التكراريه

1- FOR

2- WHILE

3- DO

................................................................................................................................................................................................................................................................

الحلقه الاولى                                                    for …next

هذه الحلقه تبدأ بكلمة FOR  وتنتهى بكلمة NEXT

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

للتوضيح اكتر

For بداية الحلقه =  اسم الحلقه To طريقه تنفيذ الحلقه] نهايةالحلقه]
[ماسيتم تنفيذه داخل الحلقه]
[Exit For] الخروج من الحلقه

Next استكمال الحلقه حت النهاية

 

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

وليكن مثلا H

ثم يجب ان يكون لها بدايه ولها نهايه

وليكن ستبدأ من 1 وتنتهى فى 10

ثم سيكون هناك ما ينفذ داخل الحلقه

والمقصود بطريقة تنفيذ الحلقه اى هل سيتم تنفيذها

خطوه بخطوه وهذا هو الشائع فى الاستخدام ام كل خطويتن

ام كل ثلاث خطوات وهكذا

ولتطبيق ذلك

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

 اننا نريد ادخال الارقام  من 1 الى 4 فى السطر 26  بداية من العمود 8

كيف سنقوم بعمل ذلك

1-نعطى الحلقه اسم معين   FOR H                                H

2-نحدد البدايه  8  ونحدد النهاية 11                

     FOR H =8 TO 11

    لاحظ ان عدد الحلقات هنا 4 عباره عن 8و9و10و111

3-ماسيتم تنفيذه

 Cells(26, h) = h - 7

4-استكمال الحلقه            NEXT

 

وبالتالى سيكون شكل الكود كالاتى

Sub enterdata_for()
For h = 8 To 11
' h----- متغير تم تعريه على انه يبدأ من 8 وينتهى عند 11
' اى ان عدد حلقاته هى 4 عباره عن 8ثم9ثم10ثم11
Cells(26, h) = h - 7
' هنا يتم تنفيذ الكود
' هنا نقول ان الخليه التى تقع فى السطر26 وفى العمود من8الى11
' مطروحا منه 7 ارقام ليصبح قيمة المتغير تساوى1hتساوى قيمة المتغير
' Cells(26, H)---  الرقم26هنا يدل على رقم السطر الذى سينفذ فيه الكود
' Cells(26, H)---  عباره عن العمود الذى سينفذ فيه الكود وبذلك يتضحh
'  hلنا ان الكود سوف ينفذ على الاعمده من 8الى11 لانها تساوى قيمة المتغير
'  h-7    يبدأ من الرقم8وينتهى عند الرقم11 فحينما ينم طرحhبما ان المتغير
' الرقم7 من المتغير بذلك تصبح قيمة المتغير تبدأ من الرقم1وتنتهى عند الرقم4
'وبذلك يكون تنفيذ الكود كالاتى
' الخليه فى السطر26وفى العمود5تساوى الرقم1ثم
' الخليه فى السطر26وفى العمود6تساوى الرقم2ثم
' الخليه فى السطر26وفى العمود6تساوى الرقم3ثم
' وهكذا حت نصل الى اخر الحلقه التكراريه اى العمود11
Next '  hتكرار عمل الكود حتى نهاية المتغير
' next---- forاقفال الحلقه التكراريه
End Sub

ويكون ناتج الكود بهذا الشكل

untitled.thumb.JPG.57039c09d4ea7b2fe04cb

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

بمعنى لو اننا اردنا مثلا تنفيذ نفس الكود على الخلايا من h23 الى h26

اى فى الخلايا h23 و h24 و h25 و h26

كيف سيكون شكل الكود

الكود هيكون نفس الكود السابق ولكن ما سيختلف هو

اننا سوف نعيد تغير قيمة المتغير h الخاص بالحلقه التكراريه ليصبح من 23 الى 26

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

للتوضيح اكثر

الفكره هكلها محصوره فى السطرين دول 

For h = 8 To 11

هنا طبعا قيمة المتغير h الخاص بالحلقه التكراريه من 8 الى 11

احنا عايزين نخليه يبقى من 23 الى 26

يبقى هيكون بالشكل ده

For h = 23 To 26

وكمان فى السطر ده

Cells(26, h) = h - 7

وطبعا احنا قولنا ان الجزئيه دى

Cells(26

تعنى ان الكود سوف ينفذ على السطر 26

والجزئيه دى

Cells( , h)

تعنى انه هينفذ على العمود h وطبعا h احنا معرفينه على انه من8 الى 11

اى انه سينفذ على العمود 8 ثم العمود 9 ثم العمود10 ثم العمود11

....................................................................................................

طب حنا عايزين ننفذ الكود على العمود h اى العمود رقم 8

يبقى سطر الكود هيكون بالشكل ده

Cells( , 8)

وعلى السطور من 23 الى 26  وبما اننا عرفنا h على انه من 23 الى 26

يبقى سطر الكود هيصبح بالشكل ده

Cells(h, )

وفى النهاية هنلاقى ان سطر الكود بالكامل بالشكل ده

Cells(h,8 )

اى ان الكود سينفذ على السطور h الى احنا عرفناها على انها من 23 الى 26

وعلى العمود رقم 8

وبعد كده تأتى الجزئيه دى

 = h - 7

ولاننا كنا معرفين h يبدأ من الرقم 8 فطرحنا من h الرقم 7 للحصول على الرقم 1

الى هو اول رقم احنا عايزين ندخله فلا او خليه

وبما اننا لسه بردو عايزين نخلى الرقم 1 هو اول رقم يتم ادخاله

ولكننا قمنا بتغير قيمة المتغير h لتصبح من 23

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

وبالتالى سنجد سطر الكود هيكون كده

= h - 22

وفى النهاية سيكون شكل الكود كده

Sub enterdata_for1()
Dim h As Integer
For h = 23 To 26
Cells(h, 8) = h - 22
Next
End Sub

ويكون ناتج الكود بهذا الشكل

untitled.thumb.JPG.92760751de57d035b292d

الحلقه الثانيه                         While

سوف نتعرف على كيفيه استخدام الحلقه التكراريه  While...Wend

هذه الحلقه تبدأ بكلمة While وتنتهى بكلمة Wend

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

للتوضيح اكتر

 While  [ الشرط ]
  ما يتم تنفيذه 
    Wend  نهاية الحلقه

 فلو اننا نريد ادخال الارقام  من 1 الى 4 فى السطر 38  بداية من العمود 8

كيف سيكون شكل الكود

Sub EnterwhileWend()
    Dim h As Integer
' H--- متغير تم تعريفه على انه رقم صحيح
    h = 8 ' متغير تم تعريفه على انه يساوى الرقم8-----
    While h <= 11
' هنا نقول ان الحلقه التكراريه تكون اقل من الرقم11او تساويه
       Cells(38, h) = h - 7
' Cells(38, H)---  الرقم38هنا يدل على رقم السطر الذى سينفذ فيه الكود
' Cells(38, H)---  عباره عن العمود الذى سينفذ فيه الكود وبذلك يتضحh
'  hلنا ان الكود سوف ينفذ بديةمن العمود8 لانها تساوى قيمة المتغير
'  h-7    يساوى الرقم8 فحينما يتم طرحhبما ان المتغير
' الرقم7 من المتغير بذلك تصبح قيمة المتغير تساوى الرقم1
       h = h + 1
'h = h + 1  هنا نقول انه يتم زياده قيمة المتغير بقيمة1صحيح مع كل
'  حلقه تكراريه حتى نصل الى  الشرط وهو ان يكون اقل من او يساوى11
    Wend  '-------'نهاية الحلقه  While
End Sub

ويكون ناتج الكود بهذا الشكل

untitled.thumb.JPG.fddf2266ffdab2dd738a7

الحلقه الثالثه                       Do

تنقسم الى ثلاثة انواع

untitled.thumb.JPG.f8de2c529a2afcb295f5c

النوع الاول Do While  Loop

 فلو اننا نريد ادخال الارقام  من 1  الى 4 فى السطر 57  بداية من العمود 8

كيف سيكون شكل الكود

Sub EnterDoWhile()
    Dim h As Integer
' H--- متغير تم تعريفه على انه رقم صحيح
    h = 8 ' متغير تم تعريفه على انه يساوى الرقم8-----
    Do While h <= 11
' هنا نقول ان الحلقه التكراريه تكون اقل من الرقم11او تساويه
       Cells(57, h) = h - 7
' Cells(57, H)---  الرقم57هنا يدل على رقم السطر الذى سينفذ فيه الكود
' Cells(57, H)---  عباره عن العمود الذى سينفذ فيه الكود وبذلك يتضحh
'  hلنا ان الكود سوف ينفذ بديةمن العمود8 لانها تساوى قيمة المتغير
'  h-7    يساوى الرقم8 فحينما يتم طرحhبما ان المتغير
' الرقم7 من المتغير بذلك تصبح قيمة المتغير تساوى الرقم1
       h = h + 1
'h = h + 1  هنا نقول انه يتم زياده قيمة المتغير بقيمة1صحيح مع كل
'  حلقه تكراريه حتى نصل الى  الشرط وهو ان يكون اقل من او يساوى11
    Loop  '-------'نهاية الحلقه  Do While
End Sub

ويكون ناتج الكود بهذا الشكل

untitled.thumb.JPG.a03811d5b4bdaa86937c7

النوع الثانى   Do Loop While

 فلو اننا نريد ادخال الارقام  من1 الى 4 فى السطر 67 بداية من العمود 8

كيف سيكون شكل الكود

Sub EnterDo()
    Dim h As Integer
' H--- متغير تم تعريفه على انه رقم صحيح
    h = 8 ' متغير تم تعريفه على انه يساوى الرقم8-----
    Do
       Cells(67, h) = h - 7
' Cells(67, H)---  الرقم67هنا يدل على رقم السطر الذى سينفذ فيه الكود
' Cells(67, H)---  عباره عن العمود الذى سينفذ فيه الكود وبذلك يتضحh
'  hلنا ان الكود سوف ينفذ بديةمن العمود8 لانها تساوى قيمة المتغير
'  h-7    يساوى الرقم8 فحينما يتم طرحhبما ان المتغير
' الرقم7 من المتغير بذلك تصبح قيمة المتغير تساوى الرقم1
       h = h + 1
'h = h + 1  هنا نقول انه يتم زياده قيمة المتغير بقيمة1صحيح مع كل
'  حلقه تكراريه حتى نصل الى  الشرط وهو ان يكون اقل من او يساوى11
    Loop While h <= 11
   ' هنا نقول ان الحلقه التكراريه تكون اقل من الرقم11او تساويه
     '-------'نهاية الحلقه  Do
End Sub

ويكون ناتج الكود بهذا الشكل

untitled.thumb.JPG.9520a7fe1aa34eddf6da2

النوع الثالث   Do Until Loop

فلو اننا نريد ادخال الارقام  من 1 الى 4 فى السطر 77 بداية من العمود 8

كيف سيكون شكل الكود

Sub EnterDoUntil()
    Dim h As Integer
' H--- متغير تم تعريفه على انه رقم صحيح
    h = 8 ' متغير تم تعريفه على انه يساوى الرقم8-----
    Do Until h > 11
' هنا نقول ان الحلقه التكراريه سوف تنفذ حتى الرقم11
       Cells(77, h) = h - 7
' Cells(77, H)---  الرقم77هنا يدل على رقم السطر الذى سينفذ فيه الكود
' Cells(77, H)---  عباره عن العمود الذى سينفذ فيه الكود وبذلك يتضحh
'  hلنا ان الكود سوف ينفذ بديةمن العمود8 لانها تساوى قيمة المتغير
'  h-7    يساوى الرقم8 فحينما يتم طرحhبما ان المتغير
' الرقم7 من المتغير بذلك تصبح قيمة المتغير تساوى الرقم1
       h = h + 1
'h = h + 1  هنا نقول انه يتم زياده قيمة المتغير بقيمة1صحيح مع كل
'  حلقه تكراريه حتى نصل الى  الشرط وهو ان يكون اقل من او يساوى11
    Loop  '-------'نهاية الحلقه  Do Until
End Sub

ويكون ناتج الكود بهذا الشكل

untitled.thumb.JPG.36d086232ec653258dd92

اتمنى ان اكون قد وفقت فى هذا الدرس

انتظروا باقى الدروس

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

  • Like 1

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