logo

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



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





23-02-2018 04:21 مساءً
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 1580
الدولة : مصر
الجنس :
تاريخ الميلاد : 1-9-1995
الدعوات : 5
قوة السمعة : 10861
الاعجاب : 6
موقعي : زيارة موقعي
السلام عليكم ورحمة الله وبركاته
معكم الأستاذ ياسر خليل
فى الحلقة الخامسة من الـVBA

.....................................................................................................
أهلا بكم إخواني الأحباب مع حلقة جديدة ، والحلقة دي استكمال لحلقة المتغيرات ..

كنا اتكلمنا عن نوعين من المتغيرين باستفاضة (3 مرات على ما الكلمة اتكتبت معايا ) ..اتكلمنا عن النوع Integer ودا بيكون للأرقام الصحيحة ، والنوع String ودا بيكون للقيم النصية.

نكمل رغي عن المتغيرات عشان نخلص منها ونخلص عليها ..

بداية أحب أعرفكم بدالة في VBA اسمها CINT ..الدالة دي وظيفتها إنها بتحول أي قيمة لعدد صحيح من النوع Integer (ودي اختصار Convert Integer..الحرف الأول من Convert وأول 3 حروف من Integer) >>

الكلام مش هيفيد بقدر التطبيق :: نجرب المثال التالي

CODE
Dim LValue As Integer
LValue = CINT(8.45)
MsgBox LValue


لو نفذنا الكود هنلاقي إن القيمة أصبحت 8 .. طيب نغير الرقم إلى 8.5 ونشوف النتيجة بردو نفس القيمة 8 .. طيب نغير الرقم ونخليه 8.6 خلي بالك متتوقعش 8 ، القيمة بقت 9 (تسعى في الخير)

الملاحظات المستفادة : إن الكسر لو أقل من أو يساوي 0.5 .. القيمة بتتقرب لتحت ، أما لو الكسر أكبر من 0.5 يبقا يتقرب لفوق ..(يعني الدالة دي ممكن نستفيد منها في أمور تانية .. زي التقريب)

جرب القيمة 8.50001 .. جربتو : أكيد لا نازلين قراية وخلاص .. اللي جرب هيتأكد من إن : لو هفوة مفيش تفاهم!!

نراجع مرة تانية المتغير Integer بمثال عملي :

CODE
    Dim nRowCount As Integer
    nRowCount = Rows.Count
    MsgBox nRowCount


أولاً عايزين نتعلم شيء مهم جداً وإحنا لسه في البداية : إننا لما نيجي نسمي متغير يا ريت يكون الاسم وصفي (يعني كل المتغيرات عندي هسميها وصفي ..شكلك بتعزه يا أستاذ ...طيب ما نسميه شوقي أو مراد ..لازم وصفي ) .. يا جدعان انتو فهمتوني غلط أنا أقصد بكلمة وصفي إنه يوصف الاسم بشكل كويس .. يعني مثلا نشوف نوع المتغير نلاقيه Integer فنقوم في أول الاسم نحط مثلا n عشان يوضح لأي حد يقرا الكود إنه Interger ، وبعد الحرف الدلالي n نكتب اسم للمتغير يكون دال عليه .. أنا مثلا هعد الصفوف فاقوم أكتب RowCount .. يبقا في النهاية اسم المتغير nRowCount ...طبعا اللي بقوله ده مش الزامي ..دي عادة حسنة بيتبعها المبرمجون المحترفون ..مش الاقي ناس تكتب mghy حاجة كدا ملهاش دلالة على اسم المتغير ...!!

السطر التاني وضعنا قيمة للمتغير وهي Rows.Count وطبعا كلمة Count دي Method بمعنى (عد) ، ودي وظيفتها إنها تعد بس تعد ايه .. تعد الصفوف Rows


واحد يقولي طيب ممكن أعد الأعمدة أقوله أيوا Columns.Count مفيش مشكلة .. واحد يقولي يعني ممكن أعد الخلايا في نطاق معين زي A1:C5 ، بردو مفيش مشكلة
CODE
Range(Cells(1, 1), Cells(5, 3)).Count



المهم خلينا في السطر التالت (محدش يخرجني برا الموضوع)

مش محتاج شرح ..إظهار قيمة عدد الصفوف في رسالة
ننفذ الكود (رسالة خطأ .. ميهمكش من الفشل .!! )

MzQ1NDE4MQ3232872876048
واحد هيسألني طيب الغلطة فين ..كل حاجة زي الفل .. المحرر دا بيستعبط ! أنا مش هشتغل على المحرر دا تاني سلااام ..

هرد عليه وأقوله اصبر بس كل الحكاية إننا بنتعامل بقواعد وقوانين ..أنا لما عرفت المتغير حددت نوعه بـ Integer ودا بيكون للأرقام الصحيحة ما بين

CODE
32, 767


والقيمة السالبة
CODE
-32, 768


يعني ببساطة بيتعامل مع الأرقام دي وبس ..ميقدرش يتعامل مع أكبر من كدا ..

طيب ايه الحل ؟ ايه البديل ؟ البديل المتغير Long دا بيتعامل مع الأرقام الصحيحة بردو ، بس ما بين

CODE
2,147,483,647


CODE
-2,147,483,648


طيب نرجع للكود بتاعنا ..عدد الصفوف في إكسيل 2007 مثلا يساوي 1048576 ، والمتغير Integer قلنا إن صحته على أده ، فيقوم المتغير Long ييجي ويشيل..

يبقا كل اللي هنغيره كلمة واحدة عشان الامور تمشي تمام (نشيل Integer ونحط Long)

يعني ممكن الكود يكون بالشكل ده (لاحظوا أنا هغير البادئة في اسم المتغير إلى L اختصار Long)

CODE
    Dim LRowCount As Long
    LRowCount = Rows.Count
    MsgBox LRowCount


بكدا نكون اتعرفنا على Integer و Long في حالة التعامل مع الأعداد الصحيحة.

ننتقل لجزئية جديدة .. التعامل مع الأرقام اللي فيها كسور عشرية..
مش هنطول في الكلام ، هناخد باختصار مثال عملي عشان نفهم الدنيا ماشية إزاي

CODE
    Dim FloatingPoint As Single
    FloatingPoint = 10 / 3
    MsgBox FloatingPoint


طيب نغير كلمة Single بكلمة Double ونلاحظ الفرق..!!

مش هشرح الفرق لكن هقول إن اللي فهم الفرق بين Integer و Long ، هيفهم الفرق بين Single و Double ...

اسلام رفع ايده وقالي لأ يا باشا اشرحها بردو (حاضر يا عم اسلام اسلام هنشرحها عشان نأكد المعلومة بس مش أكتر )

لما استعملنا النوع Single نلاحظ إن عدد الأرقام العشرية 6 بس ، أما Double فنلاقي إن اللي على يمين العلامة 14 رقم (جرب الكود مرة كدا ومرة كدا وعد بنفسك (فيه ناس هتكسل))

نقطع على الجماعة المدرسين اللي بدوا رياضيات ، ونقول إن مساحة الدائرة = ط نق2 ، والله مش عارف إذا كان صح ولا غلط

عموما القيمة ط = 22/7 ، ودي موجودة في الإكسيل باسم Pi ، يعني لو كتبنا في خلية

CODE
=PI()

هيديني قيمة الـ ط ... المهم نستفيد في المثال التالي معلومة جديدة (إننا ممكن سنتخدم بعض الدوال الموجودة في الإكسيل ونطبقها في الـ VBA)
CODE
Dim FloatingPoint As Single
FloatingPoint = WorksheetFunction.Pi
MsgBox FloatingPoint


نخلي بالنا إننا وضعنا قيمة للمتغير واستخدمنا WorksheetFunction عشان أقول لمحرر الأكواد إننا هنستخدم دالة ، وبعدين نقطة Period وبعدين اسم الدالة هنا Pi ومفيش أقواس (دا الاختلاف ..لما استخدمناها في ورقة العمل كان لازم أقواس أما هنا فلا يتم استخدامها ..

نجرب مرة المتغير Single ومرة المتغير Double ..(أي خدمة يا اسلام اسلام .. منستغناش عن خدماتك يا مستر ياسر ياسر )

نكمل كلام عن المتغيرات عشان نخلص منها :

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

المتغير اللذيذ Boolean ودا يا أبيض يا أسود .. يا صح يا غلط .. يا True يا False .. يا 1 يا صفر

بتكون القيمة المخرجة إحدى قميتين فقط

CODE
Dim balsaqrAs Boolean
MsgBox balsaqr


هنا حددنا نوع المتغير بـ Boolean .. لما ننفذ الكود هنلاقي رسالة فيها False (نفهم من كدا إن الاختيار الافتراضي هو False) يعني مش زينا بنفترض حسن النية ، لا دا ماشي بمبدأ المتهم مجرم حتى تثبت براءته ، فهنا وضع القيمة False للمتغير ..

نجرب نضع القيمة صفر

CODE
Dim balsaqr As Boolean
balsaqr = 0
MsgBox balsaqr


هنلاقي نفس الناتج اللي فات False ..!!

نغير شوية ونخلي القيمة أي قيمة غير الصفر ، هتلاقي الناتج True

فيه متغيرات تانية زي Date للتعامل مع التواريخ ، والمتغير Currency للتعامل مع العملات

وبكدا كفاية أوي على المتغيرات .. المهم في الموضوع الفكرة تكون وصلت .. أنا بس مجرد واحد معاه مفاتيح ..هديكم نسخة منها عشان تعرفوا تفتحوا الباب يا أحباب)


كان معكم صانع المفاتيح Keys Maker أخوكم أبو البراء

وإلى لقاء في حلقة جديدة من حلقات افتح الباب واهرب من الشباك ..


81 دمتم بود .. تقبلوا حبي وأشواقي وتحياتي القلبية 81
 
 





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




look/images/icons/i1.gif الحلقة السادسة المتغيرات الجزء الثانى
  23-02-2018 05:02 مساءً   [2]
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 1580
الدولة : مصر
الجنس :
تاريخ الميلاد : 1-9-1995
الدعوات : 5
قوة السمعة : 10861
الاعجاب : 6
موقعي : زيارة موقعي
وبارك الله فيك استاذى الحبيب على الشرح الوافى والذى يعد كنز من كنوز الاكسل




look/images/icons/i1.gif الحلقة السادسة المتغيرات الجزء الثانى
  23-02-2018 07:09 مساءً   [3]
معلومات الكاتب ▼
تاريخ الإنضمام : 26-08-2017
رقم العضوية : 194
المشاركات : 387
الدولة : مصر
الجنس :
تاريخ الميلاد : 15-2-1986
الدعوات : 2
قوة السمعة : 2972
الاعجاب : 4
موقعي : زيارة موقعي
ايه دا المتغيرات دى كلها اتعلمتها فى لغة الجافا وقالو كمان ان المتغيرات بتنطبق على معظم لغات البرمجة
بارك الله فيكم




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




look/images/icons/i1.gif الحلقة السادسة المتغيرات الجزء الثانى
  15-05-2018 03:02 مساءً   [5]
معلومات الكاتب ▼
تاريخ الإنضمام : 15-03-2018
رقم العضوية : 4874
المشاركات : 194
الجنس :
تاريخ الميلاد : 29-5-1982
الدعوات : 1
قوة السمعة : 469
الاعجاب : 0
كنز بجد هذه الدروس بارك الله فيكم .....




اضافة رد جديد اضافة موضوع جديد




الكلمات الدلالية
الحلقة ، السادسة ، Excel ،









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

الساعة الآن 08:06 AM