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

لوحة التميز الأسبوعي
العضو المتميز المشرف المتميز المراقب المتميز المدير المتميز الموضوع المتميز القسم المتميز
العضو المتميز المشرف المتميز المراقب المتميز المدير المتميز الموضوع المتميز القسم المتميز
Excelawy ali mohamed ali-- لا تميز خلال هذه الفترة YasserKhalil شيت لتحليل بيانات جهاز البصمه - حسام خطاب اكسيل اسئله واجابات


اعلان هنا
صقور الاكسيل
أعلن هنا
أعلن هنا
صفحتنا على الفيس بوك
أعلن هنا


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





سلسلة احترف اكسل VBA الدرس السادس

أولاً: المقدمة: يقاس مدى قدرة المبرمج على اعداد برامج معقدة وصعبة بما يتمتع به من مهارات للوصول إلى حل مشكلة معين بأكثر ..



09-01-2020 10:17 مساء
Abdulkareem87
menu_open
عضو محترف
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 20-10-2019
رقم العضوية : 15283
المشاركات : 15
الجنس : ذكر
قوة السمعة : 103
الاعجاب : 0
 offline 
أولاً: المقدمة:
يقاس مدى قدرة المبرمج على اعداد برامج معقدة وصعبة بما يتمتع به من مهارات للوصول إلى حل مشكلة معين بأكثر من طريقة وذلك لأن تلك البرامج والمشاكل ربما لايمكن تنفيذها بالطرق الكلاسيكية البسيطة أو بواسطة خوارزميات كلاسيكية, ولعل الحجر الأساس الذي يتعين على كل مبرمج الانطلاق منه وخاصة في الـ VBA هو ان يحترف ويتقن جميع طرق استدعاء الخلايا وأن يتفنن في الأسلوب المتبع لذلك.
وهذا ماسيتمحور عليه درسنا لهذا اليوم حيث سيتعرف المتدرب على تعليمتي الاستدعاء(cells) و(For) ويتقن أشكالها المختلفة ويدرك ماهو الفرق بينهما ، كما سيتقن استخدام تلك التعليمات في الحلقات ويصبح قادرا على تحديد أي شكل منها هو الأفضل وفي نهاية الدرس سيتعلم أمر هام جدا وهو كيف يقوم بتنفيذ أي تعليمة من التعليمات المعتادة في أوراق اكسل وذلك انطلاقا من من بيئة الـ(VBA) وسيتقن بأذن الله من خلالها الخطوة الأولى في الترحيل اللامحدود .
ثانيأً: الفرق بين صيغة (range) وتعليمة (cells) في الشكل والاستخدام:
  • الهدف من التعليمتين:
كلا التعليمتين يخبر البرنامج النصي الخاص بك بالمكان الذي تريد الحصول عليه أو وضع بياناتك ضمنه في ورقة العمل الخاصة بك.
  • الفرق الجوهري بين التعليمتين:
عادة ما تشير ( cells ) إلى خلية واحدة في كل مرة ، بينما تشير (range) إلى مجموعة من الخلايا في وقت واحد.
  • طرق استخدام التعليمة(cells):
الشكل العام لهذه التعليمة هو:                        Cells(row, column)  
بينما هناك أكثر من شكل خاص على النحو التالي:
1- Worksheets("Sheet1").Cells(8).Value = "VBA"
حيث يفيد هذا الشكل التحكم بالخلية حسب رقمها اعتبارا من اليسار إلى اليمين.
2- Worksheets("Sheet1").Cells(7, 4).Value = "VBA"
حيث يمكنك هذا الشكل بالوصول الى الخلية اعتمادا على رقم السطر والعمود الخاص بها.
3- Worksheets("Sheet1").Cells(11, "f").Value = "VBA"
يمكنك هذا الشكل من الوصول الى الخلية اعتماد على اسم العمود بدلا من الرقم الخاص به.
التعليمة (Range):
من نواح كثيرة ، تكون وظيفة Range أقوى بكثير من استخدام (cells) ، لأنها تتيح لك الرجوع إما إلى خلية واحدة أو مجموعة محددة من الخلايا ، دفعة واحدة.
الشكل العام لتعليمة(range):                                        Range(Cell #1,Cell #2)
وهناك اشكال مختلفة على النحو التالي:
1- Worksheets("Sheet1").Range ("A5").Value = "VBA"
حيث تكون الخلية(ِA5) هي المستهدفة.
2- Worksheets("Sheet1").Range("A1:E20")
حيث يكون كامل النطاق("A1:E20")) هو المستهدف
3- Worksheets("Sheet1").Range("A" & 3).Value = "VBA"
حيث استطيع أن اتحكم برقم السطر في كل مرة اغير بها الرقم بعد عبارة(&).
لنناقش استخدام الحلقات مع كلا التعليمتين (cells)و(range) و (offset):
*- التعليمة (cells) مع الحلقة (for):
بفرض أنك تريد نقل القيم من السطر الأول في الجدول الجانبي الى السطر الثاني مع زيادة رقم واحد على كل قيمة حيث تتنقل بنفس السطر اعتمادا على رقم العمود.
*- التعليمة (range) مع الحلقة(for):
بفرض أنك تريد اجراء نفس العملية السابقة لكن باستخدام تعليمة (range) سيبدو هذا الأمر صعبا لأن هذه التعليمة لا تسمح بالانتقال بشكل حلقي على العمود وهنا انت بحاجة لاستخدام خاصية الازاحة  الأفقية(offset) مع التعليمة(range).
Range("a3").Offset(0, i).Value = Range("a1").Offset(0, i).Value + 1
ملاحظة:
يمكن استخدام الازاحة العمودية للاسطر في نفس العمود وفق التعليمة التالية:
Range("a3").Offset(0, i).Value = Range("a1").Offset(i, 0).Value + 1
ملاحظة2:
ازاحة على نطاق كامل بعدد من الأسطر والأعمدة تتم على الشكل التالي:
Range("u48:y60").Value = Range("u48:y60").Offset(-14, -8).Value
رابعاً: حل تطبيق الدرس الخامس
بفرض وجود الجدول التالي في ورقة العمل المسماة (data) وتريد نقله إلى الورقة (transfer)
  1. ارسم خوارزمية نقل هذا الجدول باستخدام خاصية المجال
لمشاهدة الروابط يلزمك التسجيل في أكاديمية الصقر للتدريب" />
  1. اكتب الكود اللازم
 
  1. ارسم خوارزمية نقل هذا الجدول باستخدام حلقتي (for) مع الدالة (cells)
لمشاهدة الروابط يلزمك التسجيل في أكاديمية الصقر للتدريب" />
  1. اكتب الكود اللازم لذلك
لمشاهدة الروابط يلزمك التسجيل في أكاديمية الصقر للتدريب" />
لمشاهدة الروابط يلزمك التسجيل في أكاديمية الصقر للتدريب" />
خامساً: كتابة أي تعليمة ضمن الـ(VBA)
حتى تتمكن من كتابة أي تعليمة في الفيجول بيسك ابليكيشن اتبع الكود التالي
application.WorksheetFunction.
بعد النقطة اختر اي تعليمة تحتاجها وسيتم تنفيذها وفقا للبراميترات الخاصة بها.
سادساً الترحيل اللامحدود:
لكي تقوم بعملية الترحيل اللامحدود أو مايسمى الترحيل المطاطي فأنت بحاجة إلى عدم تقييد مجال النقل أي بمعنى آخر أنت بحاجة إلى استخدام متغير لتحديد نهاية النطاق في بداية كل عملية ترحيل، وعندما تقوم بالترحيل اجعل القيمة النهائية لحلقة (For) هي قيمة المتغير الذي قمت بحسابه(شاهد مقطع الفيديو والصور المرفقة لوضوح الفكرة)
تعليمة تحديد نهاية النطاق:
Sub ss()
Dim jj As Integer
jj = Application.WorksheetFunction.CountA(Range("m:M"))
End Sub

سابعاً المثال التطبيقي:للوصول إلى ملف التطبيق حمله من وصف الفيديو
في الجدول المعطى في التطبيق اسفل الفيديو والمطلوب:
1- رسم خوارزمية الترحيل باستخدام تعليمتي(Range)و(offset) من الورقة (data)إلى الورقة(transfer).
2- عمل كود الترحيل باستخدام حلقتي (For).                                    
لمشاهدة الروابط يلزمك التسجيل في أكاديمية الصقر للتدريب























توقيع :Abdulkareem87
من عمل بما علم، أورثه الله علم ما لم يعلم


10-01-2020 06:44 صباحا
مشاهدة مشاركة منفردة [1]
YasserKhalil
menu_open عضوية موثقة
مراقب عام
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 8553
الجنس : ذكر
تاريخ الميلاد : 1-10-1978
الدعوات : 21
قوة السمعة : 25160
الاعجاب : 50
 offline 
look/images/icons/i1.gif سلسلة احترف اكسل VBA الدرس السادس
بارك الله فيك أخي العزيز عبد الكريم وجزاك الله خيراً على هذا الموضوع الرائع




10-01-2020 07:32 صباحا
مشاهدة مشاركة منفردة [2]
محمد حسن المحمد
menu_open
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 24-08-2017
رقم العضوية : 80
المشاركات : 617
الجنس : ذكر
تاريخ الميلاد : 14-5-1965
الدعوات : 1
قوة السمعة : 3248
الاعجاب : 0
 offline 
look/images/icons/i1.gif سلسلة احترف اكسل VBA الدرس السادس
ما شاء الله بارك الله 
جزاك الله خيرا أخي الكريم عبد الكريم 
استوفى الشرح جوانب الموضوع وفق تسلسل رائع لبنوده حيث تمت الاستعانة بالصور التوضيحية والأكواد مع التنويه إلى وجود زر لفتح مربع حوار تحرير الأكواد أثناء كتابة الموضوع 
متألق أخي الحبيب عبد الكريم أسأل الله تعالى أن يجعل كل ذلك بميزان حسناتكم آمين 
واصل بلا فوصل كما يقول أخي الحبيب أبو البراء
والسلام عليكم ورحمة الله وبركاته 890264



توقيع :محمد حسن المحمد

الرفقُ ما كان في شيءٍ إلاَّ زانهُ ، وما نُزع من شيءٍ إلاَّ شانُه ،اللينُ في الخطاب ، البسمةُ الرائقةُ على المحيا، 
الكلمةُ الطيبةُ عند اللقاء ، هذه حُلَلٌ منسوجةٌ يرتديها السعداء


10-01-2020 02:10 مساء
مشاهدة مشاركة منفردة [3]
Abdulkareem87
menu_open
عضو محترف
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 20-10-2019
رقم العضوية : 15283
المشاركات : 15
الجنس : ذكر
قوة السمعة : 103
الاعجاب : 0
 offline 
look/images/icons/i1.gif سلسلة احترف اكسل VBA الدرس السادس
أنت الرائع والمتألق دائما...يشرفني مرورك



توقيع :Abdulkareem87
من عمل بما علم، أورثه الله علم ما لم يعلم


11-01-2020 10:22 صباحا
مشاهدة مشاركة منفردة [4]
abozar
menu_open
عضو
معلومات الكاتب ▼
تاريخ الإنضمام : 27-06-2019
رقم العضوية : 13545
المشاركات : 8
الجنس : ذكر
تاريخ الميلاد : 1-1-1983
قوة السمعة : 17
الاعجاب : 0
 offline 
look/images/icons/i1.gif سلسلة احترف اكسل VBA الدرس السادس
جزاكم الله خيرا
 




27-01-2020 09:59 صباحا
مشاهدة مشاركة منفردة [5]
جنان السبيل
menu_open
عضو نشيط
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 14-01-2020
رقم العضوية : 17616
المشاركات : 61
الجنس : ذكر
تاريخ الميلاد : 1-1-1996
قوة السمعة : 131
الاعجاب : 2
 offline 
look/images/icons/i1.gif سلسلة احترف اكسل VBA الدرس السادس
شكرا لك استاذ عبد الكريم على هذا المجهود اتمنى من السادة المشرفين ان يقومو بعمل دروس تفاعلية فيها مستويات تصاعدية وكل مستوى فيه نظام امتحان QCM نحن مبتدئون نريد التعلم بالتدريج




توقيع :جنان السبيل

يتم اكتساب المعرفة من خلال التجربة ، كل شيء آخر هو مجرد معلومات.
البرت اينشتاين

زكاة العلم نشره




المواضيع المتشابهه
عنوان الموضوع الكاتب الردود الزوار آخر رد
سلسلة احترف اكسل الدرسVBA الخامس Abdulkareem87
7 247 محمد حسن المحمد
احترف الاكسل واصنع مشروعك بنفسك Abdulkareem87
2 291 محمد حسن المحمد

الكلمات الدلالية
سلسلة ، احترف ، اكسل ، الدرس ، السادس ،


 







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

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

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