بسم الله الرحمن الرحيم
اليوم هنعرف ازاي نعمل صلاحيات للوصول لشيتات معينه داخل ملف الاكسيل
بعد ما راجعنا الدرس السابق نبدأ من حيث انتهينا
الأساسيات
الشاشة الرئيسية
الصفحات الأخرى
وأخيرا صفحة معلومات الدخول والصلاحيات
ودي أسماء الصفحات داخل الشيتات وبرمجيا
نقوم بتصميم نفس الصفحات السابقة
أظن سهلة العملية لحد دلوقتي
حان دور الاكواد
نبدأ بالاكواد السهلة
في كل صفحة غير الرئيسية بها زر رجوع نضع الاكواد كالاتي
صفحة ادخال البيانات في زر الرجوع
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
وقبل ان نترك صفحة اليوزرز
نضع هذه المعادلات
=IF(J2="";"";VLOOKUP(J2;A2:E8;3;FALSE))
=IF(J2="";"";VLOOKUP(J2;A2:E8;4;FALSE))
=IF(J2="";"";VLOOKUP(J2;A2:E8;5;FALSE))
هذه الدوال تجلب بيانات المستخدم من جدول المستخدمين ومنها نقوم بالتحكم في صلاحياته
الآن حان دور الصفحة الرئيسية
نضع في اول زر وهو زر ادخال البيانات الكود التالي
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
زر الصفحة الثانية صفحة الاستعلام
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
زر الصفحة الثالثة صفحة قاعدة البيانات
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
زر الصفحة الرابعة صفحة صلاحيات اليوزرز
وهنا سنغير الكود سنعطى لهذه الصفحة كلمة مرور خاصة غير باقي الصفحات
Sub mohamed() Dim x x = InputBox("يرجى ادخال كلمة المرور.", "Password Required") If x = "123" Then users.Visible = xlSheetVisible users.Select Else MsgBox "كلمة المرور خطأ يرجى اعداة المحاولة" End If End Sub
اكواد الصفحات تعتمد علي
اول سطر يقوم بمقارنة الخلية الخاصة بالصفحة اذا كانت بها كلمة yes
فيسمح بالدخول اما غير ذلك لا يمكن الدخول
والجزء الثان من الكود يقوم باظهار الصفحة عند تحقق الشرط والذهاب اليها
ينقصنا سطر صغير لاتمام الموضوع
نسخ اسم المستخدم عند الدخول الى الخلية المحددة ليتم جلب بيانته عن طريق اسمه
وتتم كالاتي
يتم وضع الكود في حدث زر الدخول
users.Range("j2") = ComboBox1.Value
تقبلوا تحياتي
ياسر العربي
الإبتساماتإخفاء