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

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


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





الحلقة العاشرة الدالة Msgbox

السلام عليكم ورحمة الله وبركاته ومعكم الأستاذ الكبير ياسر خليل فى عاشر حلقاته عن الـVBA مع الدالة Msgbox ............... ..



03-04-2018 01:59 مساء
Eslam Abdullah
مشرف على لغات برمجة آخرى
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 1580
الدولة : مصر
الجنس : ذكر
تاريخ الميلاد : 1-9-1995
الدعوات : 5
يتابعهم : 0
يتابعونه : 89
قوة السمعة : 10845
موقعي : زيارة موقعي
عدد الإجابات: 6
 offline 

السلام عليكم ورحمة الله وبركاته
ومعكم الأستاذ الكبير ياسر خليل فى عاشر حلقاته عن الـVBA مع الدالة Msgbox
....................................................................................................................................................................
السلام عليكم ورحمة الله وبركاته
أقدم لكم اليوم حلقة كاملة الدالة MsgBox
كلمة MsgBox اختصار للكلمة الإنجليزية Message Box أي صندوق الرسالة .. ودي وظيفتها إنك بتعرض رسالة للمستخدم تفيده بأمر معين ..

لما نكتب الدالة MsgBox ، ونضغط مسطرة عشان ناخد مسافة ، بيظهر لنا مستطيل أصفر فيه توضيح لبارامترات الدالة .. كلها اختياري ما عدا البارامتر الأول اللي هو اسمه Prompt ، والبارامتر ده هو عبارة عن النص اللي هيظهر للمستخدم (وطبعاً مينفعش يكون اختياري وإلا مش هيكون فيه رسالة للمستخدم) بس إحنا ممكن نضحك على المحرر  yes ، ونكتب السطر بالشكل ده

MsgBox ""

هو كل اللي يهمه أقواس التنصيص .. هودا كل اللي يفهمه ، أما النص اللي بين أقواس التنصيص فدا ميعرفوش وميهموش ، اكتب أي كلام ..
MsgBox "واخد على خاطري منكم"


دي الرسالة اللي عايز أوصلها لكم أحبابي .. ودا سببه عدم المتابعة الجيدة للحلقات .. عموماً دا مش وقت للعتاب..

طيب واحد هيسأل : طيب كدا موضوع الدالة بسيط ومش محتاج حلقة ؟ أقوله البسيط هنعقده ، والمعقد هنبسطه ..

تعالوا معايا نضع قيمة في الخلية D3
(كل اللي بيشرحوا مش عارف ليه مركزين على الخلية A1) أنا بحب التغيير - من باب خالف تعرف - ، وليكن القيمة 1500

عايزين نظهر القيمة الخاصة بالخلية في رسالة​

MsgBox Range("D3").Value

الرسالة هتظهر وفيها القيمة 1500 ، طيب ممكن نضيف عليها نص .. أكيد ممكن ! ليه لا!
 MsgBox "القيمة الموجودة يا أستاذ اسلام في الخلية هي " & Range("D3").Value


نلاحظ هنا إننا استخدمنا المعامل Concatenate اللي هو شكله & ، ودا وظيفته إنه بيدمج النصوص .. طبعاً القيمة اللي موجودة في الخلية D3 حتى لو كانت قيمة رقمية ، هنا مع دالة الرسالة مش بتشوفها رقم ، لكن بتشوفها نص (هنبص بعيون الدالة الجميلة)

طيب ممكن نظهر قيمة خلية تانية .. أكيد ممكن ! ليه لا

نضع القيمة
2000 في الخلية E4 ونجرب :

MsgBox Range("D3").Value & Range("E4").Value

هنلاقي إن قيمة الخلية D3 والخلية E4 لازقين في بعض ، دا لأنك مسبتش مسافة بينهم .. طيب المسافة هنعملها إزاي ؟ هو سؤال بسيط بس اعذروني أكيد فيه ناس بتسأله :: هنترك مسافة وبس .. لا .. هنعمل مسافة بالمسطرة بس بشرط تكون المسافة بين أقواس تنصيص زي كدا :
MsgBox Range("D3").Value & "   " & Range("E4").Value

هنا نفس الكلام ربطنا بالمعامل & ، وعشان تكون المسافة مناسبة ضربت على المسطرة 3 مرات (معلش أصلي مضايق ومحتاج أضرب حد ، فملقتش غير المسطرة .. بس كفاية عليها 3 ضربات ..)

واحد هيقولي أنا جربت الكود بس أنا مش عاجبني شكلهم جنب بعض ، ممكن نخلي كل قيمة في سطر .. أكيد ممكن ! ليه لا!
MsgBox Range("D3").Value & vbNewLine & Range("E4").Value

كلمة vbNewLine عشان نقدر ننزل لسطر جديد (وقلت قبل كدا بس محدش بيتابع إن فيه كلمة تانية بتؤدي نفس الغرض اسمها ايه يا شاكر؟ مش بقولكم محدش مذاكر .! اسمها vbCrLf ) يلا زيادة الخير خيرين .. وأضاف الأخ اسلام كلمة جديدة أيضاً تؤدي نفس الغرض ألا وهي
Chr(10)


 ربنا يسترها علينا وعليكم دنيا وآخرة. rolleyes

نشوف السطر ده:
MsgBox ("الحمد لله الذي بنعمته تتم الصالحات")


ايه الجديد يا أستاذ عبد المجيد ؟ الأقواس .. ممكن نستغني عنها ؟ آه ممكن .. ليه لا! .. بس الأقواس دي هنستفيد منها في إنك تخلي جملة MsgBox يمكن وضعها كقيمة في متغير (نصبر شوية هييجي الكلام عليها) .. طيب ايه هي الإضافات اللي نقدر نضيفها (هي زي البهارات حاجة كدا تحلي الأكله .. تخليها أحلى) ...

إحنا قلنا البارامتر الأول خاص بالنص ودا إجباري
(بس ممكن نخدع المحرر) ، البارامتر الثاني خاص بالأزرار Buttons .. الأزرار دي زي OK و Cancel و Retry وهكذا..

نجرب السطر التالي​:

MsgBox "هل تحب حلقات افتح الباب؟", vbOKCancel

نلاحظ بعد نص الرسالة Prompt عملنا فاصلة , ودي عشان نقول للمحرر إننا هنضيف أزرار Buttons .. أول ما تعمل الفاصلة هتلاقي زي ما اتعودت قايمة فيها القيم اللي ممكن تستخدمها ..

طيب لو نفذنا السطر اللي فات هنلاقي إن زر
OK أو زر Cancel لو ضغطت عليهم مش هيحصل حاجة غير إنه يقفل الرسالة .. (قلنا نصبر هييجي عليها الكلام يا مستر عبد السلام)

نتعرف على الأزرار الموجودة والمتاحة عندنا :
vbAbortRetryIgnore
vbOKCancel
vbOKOnly
vbRetryCancel
vbYesNo
vbYesNoCancel


ممكن نجرب القيم دي ... القصة كلها في البادئة vb ثم الأزرار اللي هنستخدمها..

ننتقل لجزئية أخرى : مع نفس البارامتر الخاص بالأزرار ممكن نضيف رموز
(علامة تعجب - علامة استفهام - ..) والرموز عشان نضيفها نضع علامة + بعد الأزرار التي سيتم استخدامها .. بالمثال يتضح المقال​
MsgBox "هل تحب حلقات افتح الباب؟", vbYesNo + vbQuestion

ممكن نتعرف على الرموز :
vbQuestion
vbInformation
vbCritical
vbExclamation

طيب ممكن نستغنى عن الأزرار ونستعمل الرموز فقط ؟ أو ممكن نستغنى عن الرموز ونستعمل الأزرار فقط؟ أكيد ممكن ! ليه لا! (النهاردة واخدين حريتكم ..مفيش تقيد)

هسيبكم شوية تجربوا الرموز دي ، وتشوفوا كل رمز شكله ايه؟ - فاصل ونواصل -

واحد بعد ما شاف الرسالة ، لاحظ إن فيها عنوان Microsoft Excel فسألني ممكن أغير العنوان ده ؟ رديت عليه وقلت له (طبعاً عارفين الإجابة)

عنوان الرسالة هو دا البارامتر التالت .. ود اسمه Title (ونلاحظ إن البارامتر لما يكون اختياري بيوضع بين أقواس بهذا الشكل [   ] )

نجرب السطر التالي :

MsgBox "هل تحب حلقات افتح الباب؟", , "منتدى الأحبة"


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

ننتقل لأهم نقطة في حلقة اليوم ألا وهي تعيين الرسالة كمتغير ، عشان ببساطة ننفذ كود معين لو المستخدم اختار زر وننفذ كود تاني لو اختار زر تاني (أكيد الكلام يتوه ..خلينا في التطبيق)
Answer = MsgBox("هل تحب حلقات افتح الباب؟", vbYesNo + vbQuestion, "منتدى الأحبة")

نخلي بالنا إننا هنا هنستخدم متغير باسم Answer (ممكن تسميه بالاسم اللي يعجبك) ، والمتغير ده هيكون له قيمة (الرسالة مجرد ستارة .. والقيمة مخفية .. والقيمة دي هنعرفها حالاً)  rolleyes

لو حبينا ننفذ كود معين في حالة اختيار معين ، هنستخدم الجملة If الشرطية ، يعني ببساطة لو المتغير Answer قيمتة كذا اعمل كذا ، ولو قيمته كذا اعمل كذا ..
Sub Query()
    Answer = MsgBox("هل تحب حلقات افتح الباب؟", vbYesNo + vbQuestion, "منتدى الأحبة")
    If Answer = vbYes Then
        MsgBox "كدا حبيبي وصاحبي وكفاءة"
    ElseIf Answer = vbNo Then
        MsgBox "زعلت منك ..روح ربنا يسامحك"
    End If
End Sub

أظن المثال واضح ، في حالة إذا كانت قيمة Answer تساوي vbYes ، هينفذ السطر التالي ويظهر رسالة بمحتوى معين ، ولو كانت القيمة vbNo هيظهر رسالة تانية ..

واحد هيقولي هو كله رسايل رسايل مفيش شات 1 .. طبعا الأسطر اللي هيتم تنفيذها مش شرط تكون رسالة ، دا مجرد مثال عشان تفهم كيفية استخدام المتغير .. لكن ممكن تنفذ مجموعة أسطر من الأكواد في حالة
vbYes ، ومجموعة أسطر أخرى من الأكواد في حالة vbNo ...

ركز وخلي بالك من الكود التالي :​

Sub Query()
    Answer = MsgBox("هل تحب حلقات افتح الباب؟", vbYesNo + vbQuestion, "منتدى الأحبة")
    If Answer = 6 Then
        MsgBox "كدا حبيبي وصاحبي وكفاءة"
    ElseIf Answer = 7 Then
        MsgBox "زعلت منك ..روح ربنا يسامحك"
    End If
End Sub

كلنا اللي عملناه شيلنا vbYes وحطينا رقم 6 ، وشيلنا vbNo وحطينا رقم 7 (ايه دا بقا ..طيب هنعرف منين اللي إنت بتقوله ده ..فيه جدول بقيمة كل زر من الأزرار .. يرجى عدم الحفظ)​
MzkyNzA1MQ1919002
فيه حاجة مهمة نسيت أقول عليها : لو لاحظتو إن الرسائل كلها وعنوان الرسائل بتظهر ناحية اليسار ، عشان نخليها يمين (ربنا يجعلنا من أهل اليمين) نجرب الكود التالي :
MsgBox "هل تحب حلقات افتح الباب؟", vbMsgBoxRight, "منتدى الأحبة"

آخر جزئية هنتكلم فيها .. مش هنتكلم فيها (فيه ملف مرفق فيه توضيح لآخر جزئية .. أنا بس هشرح نقطة واحدة في الملف المرفق ، وإنتو إن شاء الله المولى هتفهموا الباقي)

الأزرار والرموز اللي عدت علينا في الحلقة ، ممكن نستغنى عنها بقيم ..إزاي ؟​
MsgBox "هل تحب حلقات افتح الباب؟", vbYesNoCancel

ممكن السطر ده يكون بالشكل ده :​
MsgBox "هل تحب حلقات افتح الباب؟", 3

يعني القيمة 3 = vbYesNoCancel ..
مثال تطبيقي :
-----------------------

Sub Query()
    Dim Answer As String
    Answer = MsgBox("هل تريد الدخول لتطبيق الإكسيل لتطبيق الأكواد في حلقات افتح الباب؟", vbYesNoCancel)
    If Answer = vbYes Then
        MsgBox "تفضل بالدخول .. بيتك ومطرحك ، وإن شاء الله تستفيد"
        ThisWorkbook.Activate
    ElseIf Answer = vbNo Then
        MsgBox "أكيد مشغول عشان ناوي تقفل .. عموماً تصحبك السلامة وفي رعاية الله"
        ActiveWorkbook.Save
        Application.Quit
    End If
End Sub

وأخيراً أتمنى أن أكون قد وفقت في توصيل المعلومة لكم بشكل مبسط ..  wink_3

MTI1NTk3MQ4848003

81 دمتم فى رعاية الله وحفظه 81
































 
 
  MsgBox Values.rar   تحميل rar مرات التحميل :(21)
الحجم :(6.764) KB


03-04-2018 04:07 مساء
مشاهدة مشاركة منفردة [1]
عدنان التميمي
عضو مشارك
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 30-11-2017
رقم العضوية : 2033
المشاركات : 42
الجنس : ذكر
تاريخ الميلاد : 1-7-1971
يتابعهم : 4
يتابعونه : 0
قوة السمعة : 74
 offline 
look/images/icons/i1.gif الحلقة العاشرة الدالة Msgbox
احسنت بارك الله بك
 

04-04-2018 05:08 مساء
مشاهدة مشاركة منفردة [2]
أباالحسن
عضو ماسي
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 22-08-2017
رقم العضوية : 18
المشاركات : 349
الجنس : ذكر
تاريخ الميلاد : 7-7-1979
الدعوات : 1
يتابعهم : 4
يتابعونه : 17
قوة السمعة : 832
 offline 
look/images/icons/i1.gif الحلقة العاشرة الدالة Msgbox
جزاكم الله خيرا
هل هناك طريقة لالغاء عنوان الرسالة (مثل الرسالة الاخيرة فى الشرح) 
الى اللقاء احبتى
وهل يمكن التحكم فى تنسيقات الرسالة مثل الخط والحجم واللون ال...خ

04-04-2018 07:16 مساء
مشاهدة مشاركة منفردة [3]
Eslam Abdullah
مشرف على لغات برمجة آخرى
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 1580
الدولة : مصر
الجنس : ذكر
تاريخ الميلاد : 1-9-1995
الدعوات : 5
يتابعهم : 0
يتابعونه : 89
قوة السمعة : 10845
موقعي : زيارة موقعي
عدد الإجابات: 6
 offline 
look/images/icons/i1.gif الحلقة العاشرة الدالة Msgbox
وجزاك الله خيرا أستاذ أبا الحسن مشكور لمرورك العطر على الموضوع
الخط المستخدم فى msgbox هو خط موحد لكافة اجهزة الويندوس بمعنى تغيير الخط سيتم عند تغيير اعدادات الخط واللون فى الجهاز نفسه والموضوع دا  ليه اضرار على الجهاز وبياثر على البرامج اللى شغاله عليه لذلك يفضل تجنب هذا الامر
اما بالنسبه لالغاء عنوان الرسالة فالامر بسيط زى ما الاستاذ ياسر ذكر فى البدايه اننا نضحك على المحرر يعنى اكتب فى مكان العنوان علامتين تنصيص بس كدا ""
يعنى الكود اللى استخدمته فى الرساله الاخيره دى كان كدا
MsgBox "كان معكم أخوكم أبو البراء من منتدى الأحبة منتدى أكاديمية الصقر" & vbNewLine & "وأخوكم مقدم الحلقة اسلام عبدالله" & vbNewLine & "لو عجبتك الحلقة اضغط (نعم) ولو لم تعجبك اضغط (لا)", vbYesNo + vbInformation, "إلى اللقاء أحبتى"

عشان تشيل العنوان يبقى تكتب مكان الباراميتير الخاص بالعنوان كدا "" فيكون الكود كدا
MsgBox "كان معكم أخوكم أبو البراء من منتدى الأحبة منتدى أكاديمية الصقر" & vbNewLine & "وأخوكم مقدم الحلقة اسلام عبدالله" & vbNewLine & "لو عجبتك الحلقة اضغط (نعم) ولو لم تعجبك اضغط (لا)", vbYesNo + vbInformation, ""

05-04-2018 12:03 مساء
مشاهدة مشاركة منفردة [4]
mahmoud ayad
عضو فعال
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 15-03-2018
رقم العضوية : 4874
المشاركات : 194
الجنس : ذكر
تاريخ الميلاد : 29-5-1982
الدعوات : 1
يتابعهم : 8
يتابعونه : 4
قوة السمعة : 469
 offline 
look/images/icons/i1.gif الحلقة العاشرة الدالة Msgbox
تسلم ايدك استاذ اسلام

05-04-2018 04:07 مساء
مشاهدة مشاركة منفردة [5]
Eslam Abdullah
مشرف على لغات برمجة آخرى
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 03-10-2017
رقم العضوية : 852
المشاركات : 1580
الدولة : مصر
الجنس : ذكر
تاريخ الميلاد : 1-9-1995
الدعوات : 5
يتابعهم : 0
يتابعونه : 89
قوة السمعة : 10845
موقعي : زيارة موقعي
عدد الإجابات: 6
 offline 
look/images/icons/i1.gif الحلقة العاشرة الدالة Msgbox
مشكور لمرورك أستاذ محمود

06-04-2018 05:14 مساء
مشاهدة مشاركة منفردة [6]
أباالحسن
عضو ماسي
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 22-08-2017
رقم العضوية : 18
المشاركات : 349
الجنس : ذكر
تاريخ الميلاد : 7-7-1979
الدعوات : 1
يتابعهم : 4
يتابعونه : 17
قوة السمعة : 832
 offline 
look/images/icons/i1.gif الحلقة العاشرة الدالة Msgbox
جزاكم الله خيرا
لكن اقصد بازالة عنوان الرسالة رأس العنوان نفسه ككل اى شريط العنوان




الكلمات الدلالية
الحلقة ، العاشرة ، الدالة ، Msgbox ،


 










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

الساعة الآن 04:52 مساء