logo

لوحة التميز الأسبوعي
العضو المتميز المشرف المتميز المراقب المتميز المدير المتميز الموضوع المتميز القسم المتميز
العضو المتميز المشرف المتميز المراقب المتميز المدير المتميز الموضوع المتميز القسم المتميز
Hatem Eissa hassona229-- لا تميز خلال هذه الفترة لا تميز خلال هذه الفترة لا تميز خلال هذه الفترة اكسيل مشاريع جاهزه



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





09-09-2017 01:21 مساءً

بسم الله الرحمن الرحيم
درس اليوم عن كيفية التعامل مع الخلايا والنطاقات فى VBA
أول خطوه اضغط ALt + f11 للدخول الى محرر الاكواد
ومن قائمة Insert اضغط على Module كما فى الصوره التاليه ستجد شاشه جديده باسم Module1


NjMxMzUx007


هنكتب فى هذه الشاشه كود يحتوى على تعليمات برمجيه يتم تنفيذه
CODE
Sub Alsqr()
'نكتب هنا الاوامر البرمجيه المراد تنفيذها
End Sub


كما نشاهد بالكود السطر الاول هو الاعلان عن الكود بكلمة Sub ثم اسم الكود وهو Alsqr ثم () اقواس مغلقه
طبعا اسم الكود يمكنك كتابة اى اسم او احرف او اكثر من اسم بشرط يكون هناك علامه _
CODE
Sub Alsqr_Training()
'نكتب هنا الاوامر البرمجيه المراد تنفيذها
End Sub


كا نشاهد هذه العلامه _ تكون فاصله بين الكلمتين وتكتب من خلال الضغط على ( زر - فوق بجوار 0 ) + Shift
السطر الثانى هو مكان كتابه الاوامر البرمجه المراد تنفيذها
السطر الاخير هو الاعلان عن نهاية الكود End Sub
أولا : - التعامل مع الخليه مباشرة بعدة طرق
طيب عنوان درس اليوم هو كيفية استخدم الخلايا ازاى بقى اكتب جمله برمجيه مثلا ان الخلية A1 تساوى 10 ازاى اكتبها ؟
فى اكتر من طريقها هنبدأ بأسهلها
وهى استخدام الاقواس []
CODE
Sub Alsqr()
[A1] = 10
End Sub


كما تشاهدون بانه تم كتابه الخلية A1 بين []
طيب ازاى اطبق تنفيذ الكود ده ممكن نضغط على زر Run بشريط الادوات ( علامه المثلث الاخضر المتجه لليمين )
MzA2MTM2MQ20206
عند الضغط على زر Run شاهد الخلية A1 ستجد ان الخليه بها القيمة 10
ولكن يمكن عمل زر وربطه بالكود عند الضغط عليه يتم تنفيذ الاوامر البرمجيه الموجوده بالكود ولعمل الزر اتبع التالى بالصور
MzgyNDI5MQ6060009
MjExMjMzMQ63637
Mjk1MzMx011

MjE1MTU4MQ4343013


ماذا لو اردنا كتابه نص بالخلية مثلا أكاديمية الصقر للتدريب
شاهد الكود
CODE
Sub Alsqr()
[a1] = "أكاديمية الصقر للتدريب"
End Sub


ماذا لو اردنا كتابه التاريخ بالخلية
شاهد الكود
CODE
Sub Alsqr()
[a1] = Now()
End Sub


ماذا لو اردنا كتابه معادله بالخلية بستخدام الخاصيه Formula
شاهد الكود
CODE
Sub Alsqr()
[a1].Formula = "=Sum(B1:B5)"
End Sub



طيب هو يا حسام التعامل مع الخلايا يكون فقط باستخدام الاقواس [] ؟؟
طبعا لا يوجد طرق اخرى للاشاره الى الخلايا والتعامل معها
مثلا استخدام الخاصيه Range
شاهد الكود التالى
CODE
Sub Alsqr()
Range("A1") = 10
End Sub


نلاحظ اننا استخدمنا (" اكتب هنا اسم الخلية" )Range
يعنى نضع اسم الخليه بين اقواس " " تنصيص (وتكتب من خلال حرف ط بالعربى + Shift )

طيب هل يوجد طرق اخرى غير استخدام الاقواس [] وغير استخدام Range نعم سيدى الفاضل
وهو استخدام Cells
يعنى ايه Cells هقول الخاصيه Cells تستخدم للاشاره الى الخلايا عن طريق رقم الصف ورقم العمود
بمعنى ايه الكلام ده ان الخلية A1 تقع فى اى صف ؟ فى الصف رقم 1 وفى اى عمود ؟ فى العمود 1
اذن ( رقم العمود , رقم الصف ) Cells
يعنى لو عايز شير الى الخليه A1 يكون كدا (Cells(1, 1
شاهد الكود ليتضح لك الامر
CODE
Sub Alsqr()
Cells(1, 1) = 12
End Sub



طيب كدا جميل جدا ماذا لو اردنا ان نستخدم خصائص الخليه يعنى مثلا عايز اخلى الخليه A1 حجم الخط 14 & الخلفية تكون باللون الاصفر والحمايه تكون غير مفعله
شاهد الكود
CODE
Sub Alsqr()
Cells(1, 1).Font.Size = 14
Range("A1").Interior.Color = 65535
[A1].Locked = False
End Sub


طبعا عملت تنوع باستخدام الاشاره للخليه فى كل مره علشان اثبتلك ان كل الطرق تنفع
استخدم Cells & Range & []
ثم بعد ذالك كتابه الخاصيه المطلوبه او التنسيق المطلوب للخليه

فمجرد الاشاره الى الخليه ثم علامه . ستجد ان الفيجوال بيسك بيعرض لك القائمة المساعده للخصائص للاختيار منها ويمكنك تجاهله لو انت محترف كتابه الانجلش فميفرقش معاك وجود القائمه المساعده او لا
MTMwNTY4MQ47478


ثانيا :- التعامل مع عدة خلايا
كل الكلام السابق كان على خلية واحده فماذا لو اردنا التعامل مع عدة خلايا ؟
مثلا من A1:A5 ؟
1 - باستخدام الخاصيه Range فقط
شوف الكود التالى
CODE
Sub Alsqr()
Range("a1:a5") = 1
End Sub



هنا الجديد بهذا الكود هو تحديد نطاق وليس خليه محدده والمعرف عند تحديد نطاق نستخدم : ( وتكتب من خلال الضغط على حرف ك بالعربى + Shift )
وكذالك يمكن استخدام خصائص التنسيقات كالتالى
CODE
Sub Alsqr()
Range("a1:a5").Font.Size = 14
End Sub


طيب هل يوجد طريقه اخرى غير استخدام : نعم يوجد ما هى ؟ هى استخدام العلامه , (وتكتب من خلال جعل الكيبورانجلش ثم الضغط على حرف و العربى )


شاهد الكود
CODE
Sub Alsqr()
Range("A1", "A5") = 2
End Sub



2- باستخدام الخاصيه Range & Cells
فى الكود السابق نريد التعامل مع الخلايا من A1:A5 واستخدمنا Range فقط هل يوجد طريقه اخرى نعم
عرفنا قبل كدا استخدام Cells وقلنا انها ( رقم العمود , رقم الصف ) Cells
الخلية A1 تكتب من خلال Cells كالتالى ( 1 , 1 ) Cells ( الصف رقم 1 والعمود رقم 1)
الخلية A5 تكتب من خلال Cells كالتالى ( 1 , 5 ) Cells ( الصف رقم 5 والعمود رقم 1)
طيب تعالو بقى نجرب دمج Range & Cells
شاهد الكود التالى يتضح لك الامر
CODE
Sub Alsqr()
Range(Cells(1, 1), Cells(5, 1)) = 1
End Sub



ثالثا:- التعامل مع عدة خلايا متفرقه
ماذا لو كنا نريد الاشاره الى خلايا متفرقه مثلا كتابة رقم 5 فى الخلايا A1,B5,F2,d3,A6
شاهد الكود
CODE
Sub Alsqr()
Range("A1,B5,F2,d3,A6") = 5
End Sub


نلاحظ اننا استخدمنا الفاصله , ( قلنا ازاى نكتبها قبل كدا )
رابعا:- التعامل مع عدة نطاقات فى أن واحد
ماذا لو كنا نريد الاشاره والتعامل مع خلايا متفرقه ؟ مثلا A1:A5 & B2:C4 نجعل كل خليه من خلايا هذه النطاقات تساوى 9
شاهد الكود
CODE
Sub Alsqr()
Range("A1:A5,B2:C4").Value = 9
End Sub


خامسا:- التعامل مع النطاقات المعرفه
ماذا لو كنا نريد التعامل مع نطاق معرف من خلال Name Manager ( النطاقات المعرفه )
مثال لو عندى نطاق من A1:A5 تم تسميته باسم الاصناف كيف يتم التعامل والاشاره الى النطاق ؟
شاهد الكود
CODE
Sub Alsqr()
Range("الاصناف").Value = 8
End Sub


كما تلاحظون باننا وضعنا اسم النطاق وهو الاصناف بين اقواس تنصيص داخل اقواس " "
سادسا :- التعامل مع النطاق من خلال SET
ايضا يمكننا التعامل والاشاره الى نطاق من خلال تعريفه ككائن بالخاصيه SET
ما هى الخاصيه SET ؟
حول المتغير الى كائن بحيث اعرفه واقدر اتعامل معاه فأستخدمت set وهذه الكلمة هى لتحويل المتغير الى كائن


القاعده الخاصه بـ Set هى الكائن = المتغير set


مثال (" Set R = Range("A2:b5

شاهد الكود التالى

CODE
Sub Alsqr()
Dim R As Range
Set R = Range("A2:b5")
R.Value = 7
End Sub


السطر الاول الاعلان عن المتغيرر وقمت بتسميته R ( وممكن تسميه اى اسم كيفما شئت) وانه ان المتغير ده من النوع Range
وبعد كدا استخدمت SET لتحويل هذا المتغير الى كائن اقدر اتعامل معه واشير اليه فى الاوامر البرمجيه
شاهد هذا الكود ايضا
CODE
Sub Alsqr()
Dim R As Range
Set R = Range("A2:b5")
R.Font.Bold = True
End Sub


هنا استخدمنا تنسيق النطاق وجعل الخط عريض بالخاصيه Font.Bold
شاهد ايضا هذا الكود لحذف محتوى النطاق
CODE
Sub Alsqr()
Dim R As Range
Set R = Range("A2:b5")
R.ClearContents
End Sub


تم حذف محتوى النطاق باستخدام ClearContents
الخلاصه انك تقدر تعمل متغير من نوع Range وتحول هذا المتغير الى نطاق يمكنك التعامل معه بكل صوره واشكاله من خصائص وتنسيقات
سابعا:- التعامل مع النطاقات وتحديد الشيت المستهدف
واحد صاحى معايا وهيسالنى كل ما سبق بيتم التعامل مع النطاق بدون تحديد اسم الشيت وبالتالى الكود بيعمل على التعامل مع النطاق فى الشيت النشط
فماذا لو ارد تحديد اسم الشيت ومن ثم كتابه النطاق حلو جدا وسؤال مهم
للاشاره الى الشيت يوجد عدة طرق وهنقول اهمها واشهرها
اولا لازم نعرف ان الشيت له اسمين الاسم اللى موجود بالاكسيل فى شريط والاسم الموجود فى محرر الاكواد شاهد الصوره التاليه
NDU5Njc5MQ35359

نلاحظ انه فى الصوره التانيه (Sheet1(sheet1
الاسم الموجود داخل الاقواس هو نفس الاسم اللى بيكون موجود بشريط الاكسيل فلو قام المستخدم بتغيير اسم الشيت الى اسم اخرمن الخاصيه Rename مثل الى ( الصقر ) شاهد الصوره التاليه ماذا سيحدث
NDczNTg4MQ575710
اذن هنا يمكن التعامل مع الاسمين كلا منهم بطريقه مختلفه وكلاهما يعبرون عن نفس الشيت
سواء الاسم الثابت فى الفيجوال بيسك وهو Sheet1 أو الاسم اللى بيظهر فى الاكسيل ونقدر نبدله زى ما عملنا وبدلنا الاسم الى الصقر
شاهد الكود التالى
CODE
Sub Alsqr()
Sheets("الصقر").Range("F1") = 55
End Sub


لو لاحظنا اننا استخدمنا ("يكتب هنا اسم الشيت بين علامتى التنصيص" ) Sheets
("الصقر" ) Sheets
لكن لو عايزين نستخدم الاسم الثابت اللى بيظل ثابت فى محرر الاكواد فيجوال بيسك بيكون كالتالى
CODE
Sub Alsqr()
Sheet1.Range("F1") = 666
End Sub


هنا استخدمنا Sheet1 مباشرة كما هى ظاهره بالمحرر بعكس الكود السابق الذى استخدمنا فيه ("الصقر" ) Sheets
ارجو ان تكون وضحت الفكره
ثامنا:- التعامل مع النطاقات باستخدام With
ايضا يمكننا التعامل مع النطاقات باستخدام With
شاهد الكود التالى ونشرح ما هى With
CODE
Sub Alsqr()
With Sheets("الصقر").Range("a1:a10")
            .ClearContents
            .Interior.Color = 65535
End With
End Sub


نلاحظا هنا اننا استخدمنا With يعنى مع وهى للاشاره الى نطاق محدد او شيت محدد او اى شئ بالاكسيل
بعد ما عرفنا الكود ان التعليمات البرمجيه التالية ستكون على النطاق من A1:A10 فى الشيت المسمى الصقر وبالتالى لازم نستخدم العلامه . (وتكتب من جعل الكيبور انجلش والضغط على حرف ز بالعربى ) وبالتالى نستخدم عدة خصائص تطبق على هذا النطاق
طبعا لازم نقفل With بـ End with

=====================================================

نكتفى بهذا القدر والى لقاء اخر بأذن الله ودرس جديد من دروس اتعلم ازاى تصطاد


أخوكم حسام خطاب 142 111


 
 

تم تحرير الموضوع بواسطة :الصقر بتاريخ:10-09-2017 09:01 صباحاً



توقيع :الصقر

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


look/images/icons/i1.gif سلسة اتعلم ازاى تصطاد - الدرس الثانى -التعامل مع الخلايا والنطاقات فى VBA
  09-09-2017 04:46 مساءً   [1]
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 10529
الجنس :
تاريخ الميلاد : 1-10-1978
الدعوات : 24
قوة السمعة : 36759
الاعجاب : 186
بارك الله فيك أخي الغالي حسام خطاب ومشكور على هذه السلسلة القيمة والرائعة
تقبل وافر تقديري واحترامي




look/images/icons/i1.gif سلسة اتعلم ازاى تصطاد - الدرس الثانى -التعامل مع الخلايا والنطاقات فى VBA
  09-09-2017 05:28 مساءً   [2]
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 1
المشاركات : 1332
الجنس :
الدعوات : 13
قوة السمعة : 10066
الاعجاب : 67
موقعي : زيارة موقعي
الى مزيد من التقدم اخي الكريم حسام سلسلة موفقة باذن الله
جزيت خيرا
تحياتي
142



توقيع :Yasser Elaraby
663013020

look/images/icons/i1.gif سلسة اتعلم ازاى تصطاد - الدرس الثانى -التعامل مع الخلايا والنطاقات فى VBA
  09-09-2017 05:36 مساءً   [3]
معلومات الكاتب ▼
تاريخ الإنضمام : 24-08-2017
رقم العضوية : 84
المشاركات : 245
الجنس :
تاريخ الميلاد : 24-9-1981
الدعوات : 1
قوة السمعة : 350
الاعجاب : 6
اخى حسام
معلومات جميله وقيمه
بارك الله فيك



توقيع :EM_ACC
إبراهيم أبوليله

look/images/icons/i1.gif سلسة اتعلم ازاى تصطاد - الدرس الثانى -التعامل مع الخلايا والنطاقات فى VBA
  09-09-2017 05:43 مساءً   [4]
معلومات الكاتب ▼
تاريخ الإنضمام : 22-08-2017
رقم العضوية : 19
المشاركات : 26
الجنس :
تاريخ الميلاد : 9-9-1969
الدعوات : 1
قوة السمعة : 245
الاعجاب : 0

جميل جدا بارك الله فيك !!





look/images/icons/i1.gif سلسة اتعلم ازاى تصطاد - الدرس الثانى -التعامل مع الخلايا والنطاقات فى VBA
  09-09-2017 07:37 مساءً   [5]
معلومات الكاتب ▼
تاريخ الإنضمام : 27-08-2017
رقم العضوية : 227
المشاركات : 90
الدولة : ليبيا
الجنس :
تاريخ الميلاد : 25-1-1964
قوة السمعة : 194
الاعجاب : 0
اسلوب شرح رائع +معلومات مفيدة وقيمة= ابداع
حفظك الله ومتعك بالصحة والعافية وننتظر باقى الدروس




look/images/icons/i1.gif سلسة اتعلم ازاى تصطاد - الدرس الثانى -التعامل مع الخلايا والنطاقات فى VBA
  09-09-2017 08:21 مساءً   [6]
معلومات الكاتب ▼
تاريخ الإنضمام : 27-08-2017
رقم العضوية : 233
المشاركات : 14
الجنس :
تاريخ الميلاد : 1-1-1983
الدعوات : 2
قوة السمعة : 97
الاعجاب : 0
اسلوب رائع ... بارك الله فيك ... استمرررر




look/images/icons/i1.gif سلسة اتعلم ازاى تصطاد - الدرس الثانى -التعامل مع الخلايا والنطاقات فى VBA
  09-09-2017 08:25 مساءً   [7]
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 10529
الجنس :
تاريخ الميلاد : 1-10-1978
الدعوات : 24
قوة السمعة : 36759
الاعجاب : 186
الأخ العزيز الغائب عن العين الحاضر في القلب إبراهيم أبو ليلة
أهلاً بك في المنتدى ونورت بين إخوانك وأحبابك في الله
في انتظار تقديم دروس منك فقد طالت غيبتك ولابد من أن تنال عقاب .. ألا توافقني في هذا العقاب؟ wink_3




look/images/icons/i1.gif سلسة اتعلم ازاى تصطاد - الدرس الثانى -التعامل مع الخلايا والنطاقات فى VBA
  09-09-2017 09:08 مساءً   [8]
معلومات الكاتب ▼
تاريخ الإنضمام : 26-08-2017
رقم العضوية : 170
المشاركات : 14
الجنس :
تاريخ الميلاد : 15-3-1969
قوة السمعة : 42
الاعجاب : 0
بداية موفقه و ما شاء الله ....الدرس مخدوووم قوي و التركيز عالي ما شاء الله سير علي الدرب و بنفس الهمه و التركيز و الاتقان




look/images/icons/i1.gif سلسة اتعلم ازاى تصطاد - الدرس الثانى -التعامل مع الخلايا والنطاقات فى VBA
  10-09-2017 07:48 صباحاً   [9]
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 2
المشاركات : 1824
الجنس :
الدعوات : 21
قوة السمعة : 20048
الاعجاب : 12
موقعي : زيارة موقعي
جزاكم الله خيرا جميعا
تقبلوا تحياتى



توقيع :الصقر

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


look/images/icons/i1.gif سلسة اتعلم ازاى تصطاد - الدرس الثانى -التعامل مع الخلايا والنطاقات فى VBA
  12-09-2017 08:21 صباحاً   [10]
معلومات الكاتب ▼
تاريخ الإنضمام : 26-08-2017
رقم العضوية : 170
المشاركات : 14
الجنس :
تاريخ الميلاد : 15-3-1969
قوة السمعة : 42
الاعجاب : 0
السلام عليكم الاخ حسام
هو ما ينفع تكون الدروس كلها في موضوع واحد
كما طالب احد الزملاء سابقا بان تكون الدروس في موضوع والردود في موضوع اخر
جزاك الله خير الدارين




look/images/icons/i1.gif سلسة اتعلم ازاى تصطاد - الدرس الثانى -التعامل مع الخلايا والنطاقات فى VBA
  12-09-2017 08:57 صباحاً   [11]
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 2
المشاركات : 1824
الجنس :
الدعوات : 21
قوة السمعة : 20048
الاعجاب : 12
موقعي : زيارة موقعي
ان شاء الله هنجمع كل الدروس فى مشاركة واحده وهنعملها كتاب بى دى اف كمان



توقيع :الصقر

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


look/images/icons/i1.gif سلسة اتعلم ازاى تصطاد - الدرس الثانى -التعامل مع الخلايا والنطاقات فى VBA
  12-09-2017 09:45 صباحاً   [12]
معلومات الكاتب ▼
تاريخ الإنضمام : 21-08-2017
رقم العضوية : 3
المشاركات : 10529
الجنس :
تاريخ الميلاد : 1-10-1978
الدعوات : 24
قوة السمعة : 36759
الاعجاب : 186
وكمان بي دي إف .. يا مدلعنا يا حوسو
ربنا يوفقك لكل خير ويجزيك كل خير ، واصل بلا فواصل يا صقر الإكسيل




اضافة رد جديد اضافة موضوع جديد
الصفحة 2 من 3 < 1 2 3 >




المواضيع المتشابهه
عنوان الموضوع الكاتب الردود الزوار آخر رد
سلسة اتعلم ازاى تصطاد VBA اكسيل - أكاديمية الصقر للتدريب الصقر
17 8578 YasserKhalil

الكلمات الدلالية
اتعلم ، ازاى ، تصطاد ، الدرس ، الثانى ، -التعامل ، الخلايا ، والنطاقات ،









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

الساعة الآن 12:43 AM