بسم الله الرحمن الرحيم
اليوم سنشرح عمل شاشة دخول ولكن
باسم مستخدم وكلمة مرور
بسم الله نبدأ
بالشكل الموضح يوجد
المشار لهم بالسهم الأخضر 7 label
السهم الأحمر 1 textbox
السهم الأسود 1 combobox
وزر دخول وزر خروج
وطبعا اتنين image لشعار الشركة
بعد تصميم نفس الشكل السابق
نقوم بعمل شيت جديد اسمه users
كما بالصورة
بعد تسمية الشيت وخصوصا برمجيا مثل التحديد الأحمر
نضيف البيانات كالأتي
نيجي بقي للاكواد
اولا كما تعلمنا في الدرس السابق نقوم بوضع هذه الاكواد في اليوزرفورم
في general))
Private Declare Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function DrawMenuBar Lib "User32" (ByVal hWnd As Long) As Long
Const GWL_STYLE = -16
Const WS_CAPTION = &HC00000
Const WS_SYSMENU = &H80000
في حدث تهيئة الفورم
Private Sub UserForm_Initialize()
Dim lngWindow As Long, lFrmHdl As Long
lFrmHdl = FindWindow(vbNullString, Me.Caption)
lngWindow = GetWindowLong(lFrmHdl, GWL_STYLE)
lngWindow = lngWindow And (Not WS_CAPTION)
Call SetWindowLong(lFrmHdl, GWL_STYLE, lngWindow)
Call DrawMenuBar(lFrmHdl)
End Sub
في حدث الاغلاق
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If unloadmode = vbFormControlMenu Then
Cancel = True
MsgBox "غير مسموح"
End If
End Sub
اما في حدث تنشيط الفورم فنقوم باضافة اكواد ربط الليبل الخاصة ببيانات الشركة بالخلايا التي تحتوي علي البيانات
Private Sub UserForm_Activate()
Application.WindowState = xlMaximized
Application.Visible = False
Label1.Caption = users.[e1]
Label2.Caption = users.[e2]
Label3.Caption = users.[e3]
With Me
.Height = Application.Height
.Width = Application.Width
.Left = Application.Left
.Top = Application.Top
End With
End Sub
وفي زر الخروج
Private Sub CommandButton2_Click()
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
تبقي لنا الكود الاهم
وهو زر الادخال
Private Sub CommandButton1_Click()
On Error GoTo 86
If Application.WorksheetFunction.VLookup(ComboBox1.Value, users.Range("a2:l0"), 2, 0) = TextBox1.Text Then
Me.Hide
Application.Visible = True
MsgBox ComboBox1.Value & " مرحبا بك/ ", , "elmalak_elhazen_yasser@yahoo.com"
Else
86
Label7= Label7+ 1
MsgBox " لقد استخدمت " & Label7 & " محاولة من اصل 5 محاولات" ,vbCritical, "elmalak_elhazen_yasser@yahoo.com"
If Label7= 5 Then
MsgBox "لقد استنفذت جميع المحاولات"
ActiveWorkbook.Save
ActiveWorkbook.Close
End If
End If
End Sub
استخدمنا هنا دالة vlookup للبحث والمقارنة عن المستخدم وكلمة المرور
ان لم يحقق الشرط يتم التحويل الى عدد المحاولات ومنها الى اغلاق البرنامج
وطبعا زي كل مره ننسى نحط كود في حدث فتح الملف
Private Sub Workbook_Open()
Userform1.Show
End Sub
وطبعا لسه مش ربطنا الكمبوكس اللي فيها اسم المستخدم
نحدد الكمبوكس ونكتب اسم الشت والرينج اللي فيه اسم المستخدم كما موضح بالصورة المظلل بالاحمر
الى شاشة دخول اخرى باذن الله
مع تحياتي
ياسر العربي
ياسر العربي
اي مشاكل تواجهكم يرجى ابلاغنا لحلها
الإبتساماتإخفاء