عمل شاشة دخول باسم مستخدم وكلمة مرور

بسم الله الرحمن الرحيم
اليوم سنشرح عمل شاشة دخول ولكن
باسم مستخدم وكلمة مرور
بسم الله نبدأ
بالشكل الموضح يوجد
المشار لهم بالسهم الأخضر  7 label
السهم الأحمر    1 textbox
السهم الأسود     1 combobox
وزر دخول      وزر خروج
وطبعا اتنين image  لشعار الشركة
undefined
بعد تصميم نفس الشكل السابق
نقوم بعمل شيت جديد اسمه users
undefined
undefined
كما بالصورة
بعد تسمية الشيت وخصوصا برمجيا  مثل التحديد الأحمر
نضيف البيانات كالأتي
Capture.JPG.8efb534c70e99ec3510e113f8907
نيجي بقي للاكواد
اولا كما تعلمنا في الدرس السابق نقوم بوضع هذه الاكواد في اليوزرفورم

في 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

وطبعا لسه مش ربطنا الكمبوكس اللي فيها اسم المستخدم
عشان نسهل عليكم نعملها بالطريقة التقليدية وبعدين نبقي نعملها باحترافيه شوية

undefined
نحدد الكمبوكس ونكتب اسم الشت والرينج اللي فيه اسم المستخدم كما موضح بالصورة  المظلل بالاحمر
الى شاشة دخول اخرى باذن الله
مع تحياتي 
ياسر العربي 
اي مشاكل تواجهكم يرجى ابلاغنا لحلها
 


الإبتساماتإخفاء