السلام عليكم ورحمة الله وبركاته
إخواني الكرام وأحبابي في الله
أثناء تصفحي بشكل سريع للفيس رأيت طلب لأحد الأعضاء (طلب فيديو لهذا الموضوع
how to Open user form based on combobox selection ) ..
لذا آثرت تقديم الموضوع بشكل عام (رغم أنه بسيط لمن يجيد التعامل مع الفورم) ، وذلك ليستفيد المبتدئين بهذا الخصوص .. كما أنه يمكن الرجوع لدروس الأخ حسام خطاب للتعامل مع الفورم ، وهي دروس قيمة ، ولم يسبق لأحد أن قدم دروس تعليمية في التعامل مع الفورم كما قدمها أخونا حسام (جزاه الله عنا خير الجزاء)
**
المطلوب : هو إظهار فورم عند الاختيار من الكومبوبوكس
>> بفرض أن لديك عدد 3 فورم : الأول فورم رئيسي باسم MainForm ، والثاني باسم UserForm1 ، والثالث باسم UserForm2 :: ويوجد كومبوبوكس في الفورم الرئيسي به أسماء الفورم الأخرى :: والمطلوب أنه عند الاختيار من الكومبوبوكس يتم إظهار الفورم المرتبط بهذا الاختيار
** خطوات العمل :
------------------
قم بإنشاء فورم وقم بتغيير خاصية Name لتكون MainForm وكذلك خاصية العنوان أو الـ Caption لتكون MainForm ... ثم ضع عليه كومبوبوكس وزر أمر بهذا الشكل
الآن قم بوضع كود في موديول عادي بهذا الشكل وربطه بزر على ورقة العمل لإظهار الفورم
CODE
Sub Show_UserForm()<br />
MainForm.Show<br />
End Sub<br />
<br />
> الآن قم بإنشاء فورم باسم UserForm1 وفورم آخر باسم UserForm2
> وأخيراً وهذا هو لب الموضوع - قم بوضع الكود التالي في حدث الفورم الرئيسي المسمى MainForm
CODE
Private Sub UserForm_Initialize()
With ComboBox1
.AddItem "UserForm1"
.AddItem "UserForm2"
End With
End Sub
Private Sub ComboBox1_Change()
Select Case ComboBox1.Value
Case "UserForm1"
UserForm1.Show
Case "UserForm2"
UserForm2.Show
Case Else
'Nothing
End Select
End Sub
Private Sub CommandButton1_Click()
Unload Me
End Sub
** شرح الكود :
---------------
الكود مكون من ثلاثة أجزاء .. الجزء الأول مسئول عن تعبئة الكومبوبوكس بقيم ، والسؤال ما هي القيم التي سنقوم بتعبئة الكومبوبوكس بها؟
الأمر هنا يرجع إليك ، أنا عن نفسي أحبذ أن تتم عملية التعبئة بأسماء الفورم المراد التعامل معها وإظهارها وهي UserForm1 و UserForm2 .. لذا نستخدم كلمة AddItem لإضافة عناصر أو بنود للكومبوبوكس
الجزء الثاني من الكود وهو طلب السائل وهو مرتبط بحدث التغير في الكومبوبوكس ، حيث يتم اختبار القيمة التي تم اختيارها وعلى أساس هذا الاختيار يتم تنفيذ جزء من الكود
وهنا تم استخدام الجملة Select Case ويليها قيمة الكومبوبوكس المراد اختبارها
وهذه الجملة لها جمل فرعية تبدأ بـ Case أي في حالة كذا نفذ الأمر كذا ، وفي حالة كذا نفذ الأمر كذا
ففي حالة أن القيمة تساوي UserForm1 يتم إظهار هذا الفورم ، وفي حالة أن القيمة تساوي UserForm2 يتم إظهار هذا الفورم ، و تحسباً لتجنب الأخطاء يتم إضافة جملة Case Else وهنا لا يتم كتابة سطر معين بل يترك فارغ بحيث لا يحدث شيء .. وتنتهي جملة Select Case بجملة End Select
** تجربة الأكواد:
------------------
قم بالنقر على الزر في ورقة العمل والذي يقوم بإظهار الفورم الرئيسي
ستظهر الصورة التالية اختر منها الاختيار UserForm1 بهذا الشكل
النتيجة أنه سيتم إظهار الفورم المسمى UserForm1 بهذا الشكل
أرجو أن أكون قد وفقت في شرح الموضوع ، وأن يكون مفهوم
رابط الملف من هنا
أخوكم في الله / ياسر خليل أبو البراء