صلاحيات للوصول لشيتات معينه داخل ملف الاكسيل

بسم الله الرحمن الرحيم
اليوم هنعرف ازاي نعمل صلاحيات للوصول لشيتات معينه داخل ملف الاكسيل
بعد ما راجعنا الدرس السابق نبدأ من حيث انتهينا
الأساسيات
الشاشة الرئيسية
undefined
الصفحات الأخرى
2.PNG.ec142d2af460bc4f6dd8d338864c9f88.P
3.PNG.ddd7b623d2d2604385f56ad77ded3daf.P
undefined
وأخيرا صفحة  معلومات الدخول والصلاحيات
undefined
ودي أسماء الصفحات داخل الشيتات وبرمجيا
undefined
نقوم بتصميم نفس الصفحات السابقة
أظن سهلة العملية لحد دلوقتي
حان دور الاكواد
نبدأ بالاكواد السهلة
في كل صفحة غير الرئيسية بها زر رجوع نضع الاكواد كالاتي
صفحة ادخال البيانات في زر الرجوع

Sub yasser1()
index.Activate
sheet1.Visible = xlSheetVeryHidden
End Sub
السطر الاول للرجوع للصفحة الرئيسية
السطر الثاني لاخفاء صفحة ادخال البيانات وهي شيت1
وتكرر في الصفحات المتبقية
صفحة الاستعلام
Sub yasser2()
index.Activate
sheet2.Visible = xlSheetVeryHidden
End Sub
صفحة قاعدة البيانات
Sub yasser3()
index.Activate
sheet3.Visible = xlSheetVeryHidden
End Sub
صفحة المستخدمون users
Sub mohamed1()
index.Select
users.Visible = xlSheetVeryHidden
End Sub
وقبل ان نترك صفحة اليوزرز
نضع هذه المعادلات
7.PNG.05fb0570d283a346fdda82ced81d39ff.P
=IF(J2="";"";VLOOKUP(J2;A2:E8;3;FALSE))
=IF(J2="";"";VLOOKUP(J2;A2:E8;4;FALSE))
=IF(J2="";"";VLOOKUP(J2;A2:E8;5;FALSE))
هذه الدوال تجلب بيانات المستخدم من جدول المستخدمين ومنها نقوم بالتحكم في صلاحياته

الآن حان دور الصفحة الرئيسية
نضع في اول زر وهو زر ادخال البيانات الكود التالي
undefined
Sub aseel1()
If users.Range("k2") = "yes" Then
Application.ScreenUpdating = False
sheet1.Visible = xlSheetVisible
sheet1.Select
Else
MsgBox "انت لا تمتلك الصلاحية لدخول هذه الصفحة ", vbCritical, "elmalak_elhazen_yasser@yahoo.com"
Application.ScreenUpdating = True
End If
End Sub

زر الصفحة الثانية صفحة الاستعلام
11.PNG.b80241e544cb7884c8793df2c3de5b39.
Sub aseel2()
If users.Range("L2") = "yes" Then
Application.ScreenUpdating = False
sheet2.Visible = xlSheetVisible
sheet2.Select
Else
MsgBox "انت لا تمتلك الصلاحية لدخول هذه الصفحة ", vbCritical, "elmalak_elhazen_yasser@yahoo.com"
Application.ScreenUpdating = True
End If
End Sub
زر الصفحة الثالثة صفحة قاعدة البيانات
12.PNG.b43067685ae8a4cd34d09e82edc46d86.
Sub aseel3()
If users.Range("m2") = "yes" Then
Application.ScreenUpdating = False
sheet3.Visible = xlSheetVisible
sheet3.Select
Else
MsgBox "انت لا تمتلك الصلاحية لدخول هذه الصفحة ", vbCritical, "elmalak_elhazen_yasser@yahoo.com"
Application.ScreenUpdating = True
End If
End Sub
زر الصفحة الرابعة صفحة صلاحيات اليوزرز
13.PNG.16ce8d0fa6f674fc5fbbc3190971b2c9.
وهنا سنغير الكود  سنعطى لهذه الصفحة كلمة مرور خاصة غير باقي الصفحات
Sub mohamed()
Dim x
    x = InputBox("يرجى ادخال كلمة المرور.", "Password Required")
    If x = "123" Then
users.Visible = xlSheetVisible
users.Select
        Else
        MsgBox "كلمة المرور خطأ يرجى اعداة المحاولة"
    End If
End Sub


 
اكواد الصفحات تعتمد علي
اول سطر يقوم بمقارنة  الخلية الخاصة بالصفحة اذا كانت بها كلمة yes
فيسمح بالدخول اما غير ذلك لا يمكن الدخول
والجزء الثان من الكود يقوم باظهار الصفحة عند تحقق الشرط والذهاب اليها
ينقصنا سطر صغير لاتمام الموضوع
undefined
نسخ اسم المستخدم عند الدخول الى الخلية المحددة ليتم جلب بيانته عن طريق اسمه
وتتم كالاتي
undefined
يتم وضع الكود في حدث زر الدخول
undefined
users.Range("j2") = ComboBox1.Value
وبكدا يكون انتهى الدرس

لتحميل مثال اضغط هنا 
 
تقبلوا تحياتي
ياسر العربي
:wink2:


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