إبراهيم ابوليله قام بنشر أكتوبر 7, 2015 الكاتب قام بنشر أكتوبر 7, 2015 (معدل) السلام عليكم ورحمة الله وبركاته يتم استكمال الدرس السادس 8-Loop الحلقات التكراريه فى المشاركه التاليه يتم تناول الاتى الخروج من الحلقه التكراريه مثال على كيفية استخدام اكثر من حلقه فى كود واد تقبلو تحياتى تم تعديل أكتوبر 7, 2015 بواسطه إبراهيم ابوليله
إبراهيم ابوليله قام بنشر أكتوبر 7, 2015 الكاتب قام بنشر أكتوبر 7, 2015 السلام عليكم ورحمة الله وبركاته الدرس الثامن 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 سوف يتم ملئ الخلايا بالبيانات كما فى الصوره دعونا الان نتطرق الى كيفيه تنفيذ ذلك بالحلقات التكراريه انواع الحلقات التكراريه 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 ويكون ناتج الكود بهذا الشكل اما اذا اردنا تنفيذ الكود على الخلايا بشكل عمودى بدلا من الخلايا الافقيه بمعنى لو اننا اردنا مثلا تنفيذ نفس الكود على الخلايا من 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 ويكون ناتج الكود بهذا الشكل الحلقه الثانيه 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 ويكون ناتج الكود بهذا الشكل الحلقه الثالثه Do تنقسم الى ثلاثة انواع النوع الاول 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 ويكون ناتج الكود بهذا الشكل النوع الثانى 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 ويكون ناتج الكود بهذا الشكل النوع الثالث 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 ويكون ناتج الكود بهذا الشكل الخروج من الحلقه التكراريه نتعرف هنا على كيفيه الخروج من الحلقه التكراريه مثال لو اننا لدينا اسماء فى الخلايا من a80:a85 ونريد فى حالة تطابق الاسم الاسم الموجود فى الخليه b80 مع الاسماء الموجود فى النطاق يتم كتابة الرقم 1 فى الخلايا من c80:c85 وفى حالة فراغ الخليه يتم الخروج من الحلقه التكراريه كيف سيتم تنفيذ ذلك بالكود لاحظ كما فى الصوره ان الخلايا الموجوده فى العمود c فارغه جرب تنفيذ الكود الاتى Sub hima() Dim h As Integer For h = 80 To 85 If Cells(h, 1) = [b80] Then Cells(h, 3) = 1 End If Next End Sub شاهد النتيجه بعد تنفيذ الكود ستلاحظ انه تم ادخال الرقم فى كل خلايا العمود c التى تقابلها فى العمود a الاسم a اما اذا قمنا باضافة exit for الى الكود هكذا Sub hima() Dim h As Integer For h = 80 To 85 If Cells(h, 1) <> [b80] Then Exit For End If If Cells(h, 1) = [b80] Then Cells(h, 3) = 1 End If Next End Sub لاحظ هنا انه تم اضافة هذه الاسطر الى الكود If Cells(h, 1) <> [b80] Then Exit For End If وهنا نقول انه فى حالة ان الخلايا فى العمود الاول لاتساوى الخليه b80 يتم الخروج من الحلقه التكراريه ولا يتم تنفيذ شئ اخر وهنا نلاحظ الاتى كما فى الصوره ان الخليه a80 بها الاسم a وان الخليه a81 بها الاسم b لذلك فان الكود خلال تنفيذه تم اكتشاف ان لااسم فى الخليه الاولى a80 مطابق فتم اعطاء الخليه المقابله لها فى العمود c الرقم1 ثم حينما تم الوصول الى الخليه الثانيه a81 تم اكتشاف انها غير مطابقه فتم الانتقال الى السطر exit for وبذلك تم الخروج من الكود ولم يتم تنفيذ شئ اخر نجد ان exit for تستخدم للخروج من الحلقه التكراريه For Next نجد ان exit do تستخدم للخروج من الحلقه التكراريه do نجد ان exit Sub تستخدم للخروج من الكود نهائيا مثال تلوين الخلايا من g95:k95 باللون الاحمر Sub color_loop() Dim h As Integer For h = 7 To 11 Cells(95, h).Interior.Color = RGB(255, 0, 0) ' red Next End Sub استخدام اكثر من حلقه فى كود واحد مثال ماذا لو اردنا تلوين الخلايا من g102:k102 بالوان مختلفه بحيث تأخذ الخليه ذات الزوجى اللون الاسمر Sub color_loop1() Dim h As Integer For h = 7 To 11 If h Mod 2 = 0 Then Cells(102, h).Interior.Color = RGB(0, 0, 0) ' red Else Cells(102, h).Interior.Color = RGB(200, 0, 0) ' blak End If Next End Sub ماذا لو اردنا ادخال الاسم فردى فى السطور الفرديه والاسم زوجى فى السطور الزوجيه من g109:k114 بحيث يأخذ السطر الفردى الاسم فردى والسطر الزوجى الاسم زوجى Sub color_loop2() Dim h As Integer Dim hh As Integer For h = 1 To 5 For hh = 7 To 11 If h Mod 2 = 0 Then Cells(h + 108, hh) = "زوجى" Else Cells(h + 108, hh) = "فردى" End If Next Next End Sub اتمنى ان يكون الدرس مفيدا مرفق شيت اكسيل به التطبيقات learnvba.rar تقبلوا تحياتى learnvba.rar 4
إبراهيم ابوليله قام بنشر أكتوبر 8, 2015 الكاتب قام بنشر أكتوبر 8, 2015 اخى عبد العزيز منور طبعا بس انا مش فاهم انت تقصد ايه تقبل تحياتى 1
قلم-الاكسل(عبدالعزيز) قام بنشر أكتوبر 8, 2015 قام بنشر أكتوبر 8, 2015 بصراحة مشكور دروس رائعة من شخص رائع وكلك اروع من الاروع بارك الله فيك واحاطك بعين عنايته
KHMB قام بنشر أكتوبر 8, 2015 قام بنشر أكتوبر 8, 2015 السلام عليكم ورحمة الله اخواني الاعزاء ابراهيم ابوليله وعبدالعزيز البسكري الاخ عبدالعزيز عجبة الموضوع الشيًق واظن انه يقصد تجديد وتقديم الموضوع والله اعلم 2
عبد العزيز البسكري قام بنشر أكتوبر 8, 2015 قام بنشر أكتوبر 8, 2015 (معدل) السّلام عليكم و رحمة الله و بركاته بارك الله فيك أستاذنا الفاضل KHMB ..تخمينك طلع مضبوط 200% .. مواضيع كهذه تعتبر كنز ثمين .. خالص إحتراماتي تم تعديل أكتوبر 8, 2015 بواسطه عبد العزيز البسكري 2
إبراهيم ابوليله قام بنشر أكتوبر 8, 2015 الكاتب قام بنشر أكتوبر 8, 2015 بصراحة مشكور دروس رائعة من شخص رائع وكلك اروع من الاروع بارك الله فيك واحاطك بعين عنايته اخى قلم الاكسيل منور الموضوع مشكورا على الكلمات الطيبه اتمنى لك الاستفاده والتوفيق تقبل تحياتى 1
إبراهيم ابوليله قام بنشر أكتوبر 8, 2015 الكاتب قام بنشر أكتوبر 8, 2015 السلام عليكم ورحمة الله اخواني الاعزاء ابراهيم ابوليله وعبدالعزيز البسكري الاخ عبدالعزيز عجبة الموضوع الشيًق واظن انه يقصد تجديد وتقديم الموضوع والله اعلم ياه KHMB فينك من زمان ياراجل لسه فاكر او مشاكه ما بينا اعتقد كانت بخصوص فاتوره على الاكسيل واعتقد ان بسببك تم انتاج العمل نموذج فاتوره بدون فورم على العموم متغيبش عننا كتير تقبل تحياتى اخى عبد العزيز طبعا الشكر موصول لاخونا KHMB على التوضيح وتحيه خاصه ليك طبعا على المتابعه المستمره للموضوع والتشجيع المستمر ليا علشان نستكمل الموضوع وان شاء الله رغم قله المشاهده وقلة المتابعين الا اننى مصر على عرض المعلومات التى لدى لعل شخص واحد فقط يستفيد منها تقبل تحاتى 3
محمد الورفلي1 قام بنشر أكتوبر 9, 2015 قام بنشر أكتوبر 9, 2015 السلام عليكم استاذ ابراهيم .... نعتذر عن التفاعل في المشاركات لان كثير منا يتابع ويطبق بصمت وانا منهم وان كان هناك سؤال عن نقطة غير واضحة فلن اتردد في السؤال وهذا دليل لسهولة ووصول المعلومة للمتلقي اقترح .... عليك فكرة وهي وضع سؤال او احجية من الشرح السابق ... او مجموعة اسئلة مثل اسئلة الابواب التي في الكتاب المدرسي لتري مدى الاستجابة والتنافس في الطلاب ........والاجابة تكون من غير المحترف في vba
عادل حنفي قام بنشر أكتوبر 9, 2015 قام بنشر أكتوبر 9, 2015 اخي إبراهيم ابوليله بارك الله فيك مجهود رائع اكمل ولا يوقفك قلة الردود فما تسرده يعد مرجعا خالص تحياتي وتقديري
ابو يوسف المصري قام بنشر أكتوبر 9, 2015 قام بنشر أكتوبر 9, 2015 الاستاذ ابراهيم جزاك الله عن كل ما تقدمه لنا من مجهود و اعلم ان موضوعك اصبح مرجع للشخص المبتدا مثلي اليوم وربما غدا لابني واصحابه و ربما بعد الغد لحفيدي و اصحابه انت زرعت الشجره وهي ستثمر علي مدار عمرها في كل موسم لها وتعطي كل محتاج . فجزاك الله الخير في الدارين وجعلك من ضيوفه في اقرب وقت يشائه وعليه نتوكل نعم المولي و نعم البصيررر .........لو كان الشريط المتحرك الذي كان يصحب الموقع القديم لوجدت التفاعل اكثر بكثيررررر جداااااا
ابو يوسف المصري قام بنشر أكتوبر 9, 2015 قام بنشر أكتوبر 9, 2015 الاستاذ ابراهيم يرجي من سيادتكم التكرم بترقيم المرفقات التي في الدروس حتي ا يسقط اي مرفق سهوا عند التنزيل ولكم خالص شكري و تقديري
إبراهيم ابوليله قام بنشر أكتوبر 10, 2015 الكاتب قام بنشر أكتوبر 10, 2015 اخى محمد لازلنا فى شرح الدروس اما مرحلة التطبيقات ستاتى لاحقا تقبل تحياتى اخى واستاذى عادل طبعا شرف كبير انك تكون احد المشاركين والمتابعين للموضوع بارك الله فيك تقبل تحياتى اخى ابو يوسف ملوحوظه فى محلها وان كنت اخدت بالى منها وللكن المشكله ان ارقام المشاركات فى النسخه الجديده للمنتدى مكنتش بتظهر وبعدين بدأت تظهر وبعدين معدتش بتظهر شوفت انت بقى اللغبطه دى بس على العموم ان شاء الله هيكون فيه رابط المشاركات الخاصه بكل درس تقبل تحياتى 2
محمد حسن المحمد قام بنشر أكتوبر 11, 2015 قام بنشر أكتوبر 11, 2015 السلام عليكم أخي الحبيب إبراهيم أبو ليله المحترم: كم كنت أتمنى أن أراجع دراسة هذا الشرح الرائع والمتميز مرات ومرات تعلمنا من حضرتك أن الحلقة التكرارية تغنينا عن كتابة كل خلية حسب موقعها ضمن الكود كما أتمنى أن يكتب الكود يوماً ما بالعربية، ألا يكتب الإنكليز بلغتهم والصينيون بلغتهم والهنود أيضاً فلم لا يكون لنا استقلالنا بكل شيء فنكتب مثلاً - وهو حلم نود لو تحقق ذات يوم: تقبل تحياتي.. Sub enterdata_for1() Dim h As Integer For h = 23 To 26 Cells(h, 8) = h - 22 Next End Sub كود إدخال_بيانات_لأجل1() تعريف h كعدد صحيح لأجل h =23 إلى 26 الخلايا (h,8)=h-22 التالي نهاية الكود 2
saad abed قام بنشر أكتوبر 11, 2015 قام بنشر أكتوبر 11, 2015 اخى ابراهيم جزاك الله خيرا بارك الله فيك شروحات ممتازة 1
إبراهيم ابوليله قام بنشر أكتوبر 12, 2015 الكاتب قام بنشر أكتوبر 12, 2015 السلام عليكم أخي الحبيب إبراهيم أبو ليله المحترم: كم كنت أتمنى أن أراجع دراسة هذا الشرح الرائع والمتميز مرات ومرات تعلمنا من حضرتك أن الحلقة التكرارية تغنينا عن كتابة كل خلية حسب موقعها ضمن الكود كما أتمنى أن يكتب الكود يوماً ما بالعربية، ألا يكتب الإنكليز بلغتهم والصينيون بلغتهم والهنود أيضاً فلم لا يكون لنا استقلالنا بكل شيء فنكتب مثلاً - وهو حلم نود لو تحقق ذات يوم: تقبل تحياتي.. Sub enterdata_for1() Dim h As Integer For h = 23 To 26 Cells(h, 8) = h - 22 Next End Sub كود إدخال_بيانات_لأجل1() تعريف h كعدد صحيح لأجل h =23 إلى 26 الخلايا (h,8)=h-22 التالي نهاية الكود اخى محمد تنمنى من الله عز وجل ان يمدنا ويرزقنا بما ينفعنا تقبل تحياتى اخى ابراهيم جزاك الله خيرا بارك الله فيك شروحات ممتازة اخى سعد بتغيب تغيب وتظهر على فترات ياريت متسبناش كتير عايزين نستفيد من خبراتك تقبل تحياتى 1
عبد العزيز البسكري قام بنشر أكتوبر 13, 2015 قام بنشر أكتوبر 13, 2015 السّلام عليكم و رحمة الله و بركاته تحية تقدير و إعجاب و احترام لك أستاذنا القدير ابراهيم أبو ليله لما تقدّمه من دروس قيّمة ذات فائدة كبيرة .. تعلمنا منكم أساتذتنا القديرين الكثير .. جزاكم الله خيرًا و زادها بميزان حسناتكم فقط لو كان بالإمكان سيّدي الكريم أن تضع بأجندة سلسلة دروسك .. دروس " الترحيل " بين شيتات الاكسيل و ليس للفورم .. ألف شكر مقدّمًا .. مع خالص إحتراماتي 2
إبراهيم ابوليله قام بنشر أكتوبر 13, 2015 الكاتب قام بنشر أكتوبر 13, 2015 اخى عبد العزيز اشكرك على الكلمات الطيبه بارك الله فيك واسأل الله ان يزيدك من فضله وعلمه ............................................................ ولكن صبرا صبرا فلم ننتهى من هذه الدروس حتى الان وكما ذكرنا فى عنوان الموضوع انك باذن الله لن تحتاج الى السؤال حينما تتعامل مع VBA فى الحالات البسيطه بحيث يكون لديك معلومات تستطيع بها تنفيذ مطالبك وطبعا من ضمن هذه الدروس سيكون الترحيل باذن الله تقبل تحياتى 1
إبراهيم ابوليله قام بنشر أكتوبر 14, 2015 الكاتب قام بنشر أكتوبر 14, 2015 (معدل) السلام عليكم ورحمة الله وبركاته الدرس التاسع 9-MsgBox الرساله وسوف نتناول فى هذه الدرس الاتى شكل السطر الخاص بالرساله الاسماء الخاصه بالازرار والارقام التى يمكن استبدال الاسم بها اضافة سطر فاصل فى الرساله كيفية استخدام الجمل الشرطيه if مع MsgBox كيفية استخدام Select Case مع MsgBox شكل السطر الخاص بالرساله نحتاج الى استخدام الرسائل داخل الاكواد لتذكرينا بشئ معين او تنبيهنا بشئ معين كهذا ولمعرفة كيفية عمل ذلك دعونا نستعرض السطر الخاص بالكود الخاص بالرساله MsgBox([النص], [الازرار], [العنوان]) النص-----هنا يتم كتابة نص الرساله التى سوف تظهر لك الازرار---اختيار الازرار التى تظهر فى الرسالهyes, no, cancelويوجد ايضا ازرار اخرى العنوان---عنوان الرساله راجع الصوره الاتيه ولتنفيذ رساله بهذا الشكل نقوم بكتابة الكود الاتى Sub msgbox_() MsgBox "لاتنسونى بصالح الدعاء", vbYesNoCancel, "اللهم تقبل من صالح الاعمال" End Sub وفى هذا الكود قلنا ان محتوى النص -- لاتنسونى بصالح الدعاء تكون الازرار--الموجوده فيها yes-no-cancel يكون العنوان-- اللهم تقبل من صالح الاعمال ولو افترضنا اننا نريد اظهار الزر yes فقط نقوم باستبدال السطر الاتى vbYesNoCancel ب السطر الاتى vbYes اما اذا اردنا اظهار الزر yes والزر no يكون سطر الكود كالاتى vbYesNo ملحوظه بسيطه يمكن الاستغناء عن كتابة الاسم الخاص بكل زر واستبدال الاسم بالرقم الخاص بالزر لاحظ الكود الاتى Sub msgbox_1() MsgBox "لاتنسونى بصالح الدعاء", 3, "اللهم تقبل من صالح الاعمال" End Sub لاحظ اننا استخدمنا الرقم 3 بدلا من vbYesNoCancel وذلك من اجل اظهار الازرار yes - no -cancel الاسماء الخاصه بالازرار والارقام التى يمكن استبدال الاسم بها ولمعرفة المزيد من الاسماء الخاصه بالازرار والارقام التى تعبر عن كل زر وكيفية كتابة الاكواد راجع الصوره الاتيه اضافة سطر فاصل فى الرساله هناك طريقتان لعمل ذلك الطريقه الاولى تعتمد هذه الطريقه على استخدام الخاصيه Chr مع استخدام الرقم 10 الخاص باضافة سطر فاصل وتكون شكل الرساله كالاتى وبالتالى نجد شكل الكود كالأتى Sub Line_MsgBox() MsgBox "النص الاول" & Chr(10) & "النص الثانى" & Chr(10) & "النص الثالث", vbYesNoCancel + vbDefaultButton3, "العنوان" End Sub الطريقه الثانيه تعتمد على استخدام vbNewLine وتكون شكل الرساله كالاتى وبالتالى نجد شكل الكود كالأتى Sub Line_MsgBox1() MsgBox "النص الاول" & vbNewLine & "النص الثانى" & vbNewLine & "النص الثالث", vbYesNoCancel + vbDefaultButton3, "العنوان" End Sub كيفية استخدام الجمل الشرطيه if مع MsgBox مثال نفترض اننا لدينا الخليه a51 نريد ادخال الاسم ابراهيم فيها ونريد ان تظهر لنا رساله تفيد هل تريد ادخال الاسم فى الخليه نعم ام لا--ثم اذا كانت الاجابه بنعم تظهر لنا رساله تفيد بأنه تم ادخال الاسم بنجاح واما اذا كانت الاجابه ب لا تظهر رساله تفيد بانه قد تم الالغاء كما يتضح من الصوره فى حالة الضغط على نعم فى حالة الضغط على زر لا ولمعرفة كيفية عمل ذلك نستعرض محتوى الرساله النص----هل نريد ادخال الاسم فى الخليه a51 نعم ام لا الازرار-- زر نعم---زر لا العنوان--تنبيه راجع الكود الاتى Sub if_MsgBox() Range("a51").ClearContents ' حزف محتوى الخليه Dim Answer As String 'Answer متغير تم تعريفه على انه من النوع نصوص Answer = MsgBox("هل نريد ادخال الاسم فى الخليه a51 نعم ام لا", vbYesNo, "تنبيه") If Answer = vbYes Then Range("a51") = "إبراهيم" MsgBox "تم ادخال الاسم بنجاح", vbOKOnly, "تنبيه" ElseIf Answer = vbNo Then MsgBox "تم إلغاء عملية الادخال", vbOKOnly, "تنبيه" End If End Sub كيفية استخدام Select Case مع MsgBox مثال نفترض اننا لدينا الخليه a60 نريد ادخال الاسم أبوليله فيها ونريد ان تظهر لنا رساله تفيد هل تريد ادخال الاسم فى الخليه نعم ام لا--ثم اذا كانت الاجابه بنعم تظهر لنا رساله تفيد بأنه تم ادخال الاسم بنجاح واما اذا كانت الاجابه ب لا تظهر رساله تفيد بانه قد تم الالغاء كما يتضح من الصوره فى حالة الضغط على نعم فى حالة الضغط على زر لا ولمعرفة كيفية عمل ذلك نستعرض محتوى الرساله النص----هل نريد ادخال الاسم فى الخليه a60 نعم ام لا الازرار-- زر نعم---زر لا العنوان--تنبيه راجع الكود الاتى Sub SelectCase_MsgBox() Range("a60").ClearContents Dim lReply As Long Reply = MsgBox("هل نريد ادخال الاسم فى الخليه a60 نعم ام لا", vbYesNo, "تنبيه") Select Case Reply Case vbYes Range("a60") = "أبوليله" MsgBox "تم ادخال الاسم بنجاح", vbOKOnly, "تنبيه" Case vbNo MsgBox "تم إلغاء عملية الادخال", vbOKOnly, "تنبيه" End Select End Sub اتمنى ان يكون الدرس مفيدا مرفق شيت اكسيل به التطبيقات learnvba.rar تقبلوا تحياتى learnvba.rar تم تعديل أكتوبر 14, 2015 بواسطه إبراهيم ابوليله 2
إبراهيم ابوليله قام بنشر أكتوبر 15, 2015 الكاتب قام بنشر أكتوبر 15, 2015 اخى نديم اتمنى لك الاستفاده واتمنى ان يكون الموضوع مفيد تقبل تحياتى
محمد حسن المحمد قام بنشر أكتوبر 16, 2015 قام بنشر أكتوبر 16, 2015 السلام عليكم أخي العزيز إبراهيم أبو ليله ... بارك الله بك وبأعمالك الطيبة وجعلها بميزان حسناتك... وألتمس منكم العذر لقلة متابعتي لكثرة مشاغلي ... فإن سنحت لي الفرصة المناسبة سأعوض ما فاتني وسأكون متابعاً لأستاذي العزيز إبراهيم... عاماً سعيداً وجمعة مباركة نرجوها لكم جميعاً... والسلام عليكم. 2
الامبن قام بنشر أكتوبر 16, 2015 قام بنشر أكتوبر 16, 2015 السلام عليكم ورحمة الله وبركاته الأستاذ الفاضل إبراهيم أبو ليلة بعد التحية هذا الشرح لاياتى الا من استاذ متمكن وكريم لايبخل بعلمه على الاخرين وفي تجوالى بالمنتدى وجدت شرح اخر لسيادتكم وهو موضوعكم الرائع فاتورة على الإكسيل بدون فورم لكن للأسف بعد مرور سنة تقريبا عليه فهل ياترى اطمع في كرمكم واحصل علي الاكواد كاملة اوالعمل كامل مفتوح المصدر حتي أتمكن من دراسته حيث إنني جمعت الاكواد من الشرح لكن لم تعم كذلك الصور المرفقة غير موجودة بالإضافة إلي إن الملفات المرفقة لاتعمل علي إكسيل 2003 هو المتوفر لدى وأقوم بعمل ما يلزمني عليه أرجو إن اطلعت على طلبي ان تشمله بالرعاية حيث إنني في اشد الحاجة لهذا العمل ومازلت اتابعكم فى عملكم الحالى الخاص بشرح الVBA وهذا ايضا عمل يضاف الى اعمالك الجيدة ولك من قبل ومن بعد وافرشكرى وامتناني elameen
إبراهيم ابوليله قام بنشر أكتوبر 16, 2015 الكاتب قام بنشر أكتوبر 16, 2015 (معدل) السلام عليكم ورحمة الله وبركاته الدرس العاشر 10-InputBox صندوق الإدخال تستخدم InputBox كوسيله لادخال البيانات او للتحقق من بيانات معينه وللتعرف على كيفية استخدامها لابد لنا من التعرف على محتواها InputBox("القيمه الافتراضيه", "العنوان", "النص") مثال على كيفية استخدامها فى ادخال البيانات نريد ادخال اسم hima فى الخليه A3 عن طريق InputBox سيكون شكل الكود كالاتى Sub InputBox_() Dim hima As String 'hima متغير من نوع النصوص hima = InputBox("النص", "العنوان", "hima") ' InputBoxقيمة himaاعطاء المتغير Range("a3") = hima 'InputBox اى himaتساوى قيمة المتغير a3 هنا نقول ان الخليه End If End Sub مثال على كيفية استخدامها فى التحقق من البيانات نريد ادخال اسم hima فى الخليه A3 عن طريق InputBox ونريد ان تظهر لناInputBox نقوم بادخال باسوورد123 كشرط لادخال لظهور InputBox اخرى يتم استخدامها فى ادخال البيانات ولعمل ذلك قم بكتابة الكود الاتى Sub InputBox_1() Dim h As Integer h = 123 'hima متغير من نوع النصوص hima = InputBox("ادخل الرقم السرى", "العنوان") If IsNull(hima) Or hima = "" Then GoTo xx ' xxفى حالة الفراغ يتم الذهاب الى If h = hima Then ' hفى حالة تساوى القيمة المدخله مع المتغير hima1 = InputBox("النص", "العنوان") Range("a3") = hima1 'InputBox اى himaتساوى قيمة المتغير a3 هنا نقول ان الخليه Else xx: MsgBox "كلمة مرور غير صحيحة" & Chr(13) & " الرجاء اعادة ادخال كلمة المرور ", vbOKOnly End If End Sub اتمنى ان يكون الدرس مفيدا مرفق شيت اكسيل به التطبيقات learnvba.rar تقبلوا تحياتى learnvba.rar تم تعديل أكتوبر 16, 2015 بواسطه إبراهيم ابوليله 2
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.