السلام عليم ورحمة الله وبركاته
سأحاول اليوم شرح الدرس الماضي - كيفية عمل مشروع بنسخة تجريبية-
أولا نقوم بفتح ملف أكسل جديد ثم من تبوب المطور نختار UserForm ثم نضيف عليه إثنين TextBox و سبعة Label و CheckBox واحدة و إثنين CommandButtonكما هو موضح في اليوزر فورم1

نرجع على ورقة العمل رقم 1
أولا شرح توليد كود التفعيل
عند الخلية G1""نكتب مثلا رقم 6881 ثم نحد الخلية نكتب مثلا رقم 6881 ثم نحد الخلية "H1" ونقوم بتحويل الرقم الموجود في الخلية G1"" من رقم عشري إلى رقم سداسي عشري وذلك بكتابة المعادلة التالية في الخلية "H1"
=DEC2HEX(G1)
يصبح الناتج 1AE1 ولزيادة الحماية أكثر نضع في الخلية "J1" المعادلة التالية
=G1*2-10000 وذلك لكي يصبح الكود أكثر أمانا
وهذا هو كود التفعيل.

نعود لليوزر فورم 1
بعد ما صممنا اليوزر فورم مثلما هو موضح في الصورة السابقة بالضبط
نجعل textbox2 مخفي لأننا نريد عند ظهر اليوزر فورم . التكس بوكس2 يأخذ القيمة الموجودة في الخلية "J1"
وذلك بالضغط مرتين على اليوزر فورم ونكتب الكود التالي في حدث Activate
CODE
Private Sub UserForm_Activate()<br />
Label6.Caption = Cells(1, 8).Value<br />
TextBox2.Value = Cells(1, 10).Value<br />
End Sub<br />
نقوم بتصميم يوزر فورم 2 كما هو موضح بالصورة

نعود لليوزر فورم واحد ونقوم بالضغط على زر موافق مرتين ونكتب الكود التالي
CODE
Private Sub CommandButton1_Click()
If TextBox1.Value = TextBox2.Value Then
Cells(1, 1).Value = 0
UserForm2.Caption = "نسخة مفعلة"
UserForm2.Label1.Visible = False
UserForm2.Label2.Visible = False
UserForm1.Hide
UserForm2.Show
Else
Call kamell
Label6.Caption = Cells(1, 8).Value
TextBox2.Value = Cells(1, 10).Value
Label3.Caption = Label3.Caption - 1
TextBox1.Enabled = True
TextBox1.Value = ""
TextBox1.SetFocus
If Label3.Caption = 0 Then
ThisWorkbook.Save
Application.Quit
End If
End If
End Sub
سؤال مطروح ماذا تعني Call kamell !?
للإجابة على هذا السؤال ندرج مديول نسميه مثلا kamell ثم نكتب فيه الكود التالي
CODE
Sub kamell()<br />
m = Cells(1, 7).Value<br />
b = m + 15<br />
Cells(1, 7).Value = b<br />
End Sub<br />
هذا الموديول هو لتغيير الكود كلما أخطأت في إدخال الكود الصحيح وهذا كما قلنا لزيادة المحافظة على خصوصية و امان البرنامج
ثم نعود لليوزفورم1
نضغط مرتين على شيكبوك ونكتب الكود التالي
CODE
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
TextBox1.PasswordChar = ""
Else
TextBox1.PasswordChar = "*"
End If
End Sub
اه انا نسيت حاجة في تكس بوكس نروح للخصائص وعند الخاصيةPassewordChar نكتب بجنبها * أو أي رمز أخر وهذ لإخفاء كلمة المرور

نضغط مرتين على زر الخروج من البرنامج ونكتب الكود التالي
CODE
Private Sub CommandButton2_Click()<br />
ThisWorkbook.Save<br />
Application.Quit<br />
End Sub<br />
وبهذا القدر نكتفي اليوم بقية حاجة بسيطة من البرامج نتركها لمرة اخرى بإذن الله
شكرا
السلام علكم
تكملتا للموضوع لم يتبق في هذا اليوزر فورم إلا إلغاء خاصية QueryClose وذلك بإدراج الكود التالي في اليوزر فورم
CODE
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)<br />
Cancel = True<br />
End Sub<br />
وهاكذا إنتهينا من اليوزر فورم 1
ننتقل لليوزر فورم2
في حدث userform activate نضع الكود التالي
CODE
Label2.Caption = Cells(1, 2).Value<br />
وهذا الكود يمثل جلب عدد المرات المتبقية للنسخة التجربية و إضهارها في الليبل كما هو موضح في الصورة السابقة
والزر -ملف الأكسل يمثل الدخول للبرنامج والزر الأخر للخروج كذلك يجب إلغاء QueryClose كما فعلن سابقا في اليوزر فورم 1
نأتي للمرحلة الأخيرة
ندرج يوزر فورم 3 ونع فيه2 أزرار و ليبل واحد كما في الصورة

في حدث userform activate نض الكود التالي
CODE
Private Sub UserForm_Activate()<br />
If Cells(1, 2).Value = 0 Then<br />
CommandButton2.Visible = False<br />
End If<br />
End Sub<br />
والذي يمثل إذا كانت عدد المرات المتبقية هي 0 أخفي زر العمل على النسخة التجريبية
أما الزر الأخر فهو لفتح اليوزر فورم 1
كذلك نلغي خاصية QueryClose
وهذا اليوزر فورم نجعله يظهر عند فتح البرنامج و إذا كانت النسخة تجريبية فقط
أما إذا كانت مفعلة فلن يظهر
كيف نقوم بذلك ?
نقوم بفتح ThisWorkbook

ومن خلال حدث Open ندرج الكود التالي
CODE
Private Sub Workbook_Open()
Application.Visible = False
Cells(1, 7).Value = Cells(1, 7) + 7
If Cells(1, 1).Value = 1 Then
Cells(1, 2).Value = Cells(1, 2).Value - 1
UserForm3.Show
Else
UserForm2.Caption = "نسخة مفعلة"
UserForm2.Label1.Visible = False
UserForm2.Label2.Visible = False
UserForm2.Show
End If
End Sub
طبعا هذا مثال على البرنامج لأن البرنامج في الأخير لن يظهر ملف الأكسل وسوف يكون فيه عديد من أوراق العمل لذلك من المستحسن كتابة إسم الشيت قبل كل خلية المعلن عنها سابقا ثم إخفاء هذه الورقة
أرجوا أن أكون وفقت في شرح بعض النقاط الغامضة وشكر