السلام عليكم ورحمة الله وبركاته
إخواني الكرام
من يتعامل مع الفورم وبرمجة الفورم سيحتاج لهذا الكود بشكل كبير ، فبفرض أن لديك فورم وبه عدد كبير من أدوات التحكم من تكست بوكس وليست بوكس وكومبوبوكس .. وتريد مسح محتويات هذه الأدوات بعد عملية الترحيل على سبيل المثال استعداداً لإدخال بيانات جديدة .. لذا أقدم لكم الكود التالي وهو كود ستتمكن من خلاله استخدامه في أي فورم وفي أي حدث داخل الفورم
نذهب لمحرر الأكواد عن طريق الضغط على Alt + F11
نقوم بإدراج فورم UserForm من خلال قائمة Insert ثم نختار UserForm
نقوم بوضع ثلاثة أدوات تحكم TextBox1 و ListBox1 و ComboBox1 و CommandButton1 ، ثم نقوم بتغيير بعض الخصائص من خلال نافذة الخصائص ..
نقوم بتغيير خاصية العنوان Caption لزر الأمر عن طريق تحديد زر الأمر والدهاب لنافذة الخصائص ومن الخاصية Caption نكتب كلمة Clear
نحدد التكست بوكس ثم من خاصية Text نكتب أي قيمة نصية وليكن Hello
الآن ننتقل لوضع الأكواد ويكون ذلك عن طريق كليك يمين على اسم الفورم من نافذة المشروع ثم اختر View Code كما بالصورة
قم بوضع الأكواد التالية والتي تقوم بتعبئة الكومبوبوكس والليست بوكس ببعض القيم ، والكود الثاني هو كود لزر الأمر CommandButton1 والذي يقوم باستدعاء كود المسح
CODE
Option Explicit
Private Sub UserForm_Initialize()
'تعبئة الكومبوبوكس ببعض القيم
With ComboBox1
.AddItem "A"
.AddItem "B"
.AddItem "C"
End With
'تعبئة الليست بوكس ببعض القيم
With ListBox1
.AddItem "D"
.AddItem "E"
.AddItem "F"
End With
'اختيار أول اختيار في الكومبوبوكس
ComboBox1.ListIndex = 0
End Sub
Private Sub CommandButton1_Click()
'استدعاء الكود الذي يقوم بمسح أدوات التحكم يليه اسم الكائن
'المطلوب التعامل معه ، والكائن هنا هو الفورم ويتم الإشــارة
'أو [UserForm1] إلى الفـورم عن طريق اسـم الفورم بهذا الشكل
'للإشارة للفورم نفسه الذي بـه الكـود [Me] يمكن استخدام كلمة
ResetUserFormControls Me
End Sub
الآن قم بإدراج موديول جديد من قائمة Insert ثم Module وضع الكود التالي فيه
CODE
Option Explicit
Sub Show_Form()
'مع إمكانية التعامل مع ورقة العمل [UserForm1] إظهار الفورم المسمى
'بدلاً من الصفر [vbModeless] يمكن استخدام كلمة
UserForm1.Show 0
End Sub
Sub ResetUserFormControls(obj As UserForm)
'هذا هو الإجراء العام الذي يقوم بعمل حلقة تكرارية لأدوات التحكم
'الموجـودة داخل الفـورم ثم يقوم بمسـح محتوياتها وتشمـل الأدوات
'التكست بوكـس والكومبوبوكـس والليست بوكـس ثم يوضع مؤشر الماوس
'في التكست بوكس رقم 1 ويمكن حذف السطر الأخير -لك حرية التعديل
Dim c As Control
For Each c In obj.Controls
Select Case TypeName(c)
Case "TextBox"
c.Text = vbNullString
Case "ListBox", "ComboBox"
c.ListIndex = -1
c.Clear
End Select
Next c
obj.TextBox1.SetFocus
End Sub
الأكواد عليها تعليقات فيها شرح للأسطر الموجودة ...
وأخيراً يمكنك رسم زر أمر على ورقة العمل ، ثم كليك يمين على الزر ثم اختر Assign Macro وحدد الكود المسمى Show_Form والذي يقوم بإظهار الفورم
بمجرد النقر على هذا الزر وتشغيل الكود سيتم تعبئة الكومبوكس والليست بوكس ، قم بالنقر على زر الأمر Clear وستجد أن كل أدوات التحكم قد تم مسح محتوياتها
رابط الملف من هنا
أخوكم في الله / ياسر خليل أبو البراء