ياسر العربى قام بنشر نوفمبر 23, 2015 قام بنشر نوفمبر 23, 2015 بسم الله الرحمن الرحيم اليوم هنعرف ازاي نعمل صلاحيات للوصول لشيتات معينه داخل ملف الاكسيل ولكن اولا نقوم بمراجعه درس اعمل شاشة دخول برنامجك بنفسك وسيبك من التقليد http://www.officena.net/ib/topic/64832-اعمل-شاشة-دخول-برنامجك-بنفسك-وسيبك-من-التقليد/ بعد ما راجعنا الدرس السابق نبدأ من حيث انتهينا الأساسيات الشاشة الرئيسية الصفحات الأخرى وأخيرا صفحة معلومات الدخول والصلاحيات ودي أسماء الصفحات داخل الشيتات وبرمجيا نقوم بتصميم نفس الصفحات السابقة أظن سهلة العملية لحد دلوقتي حان دور الاكواد نبدأ بالاكواد السهلة في كل صفحة غير الرئيسية بها زر رجوع نضع الاكواد كالاتي صفحة ادخال البيانات في زر الرجوع 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 وبكدا يكون انتهى الدرس تقبلوا تحياتي ياسر العربي لو مكسلين تطبقوا احط ليكم مرفق وخلاص وادي مرفق الشرح PDF صلاحيات.rar 7
الصـقر قام بنشر نوفمبر 23, 2015 قام بنشر نوفمبر 23, 2015 (معدل) اخى الحبيب والغالى ياسر العربى يسعدنى ان اكون اول المهنئين على هذا الشرح الرائع لا يسعنى الا ان اقول جزاكم الله خيرا اسال الله تعالى ان يزيدك من فضله وعلمه بارك الله فيك واتمنى منك لا تحرمنا من هذه النفحات تقبل تحياتى تم تعديل نوفمبر 23, 2015 بواسطه الصـقر 1
ياسر العربى قام بنشر نوفمبر 23, 2015 الكاتب قام بنشر نوفمبر 23, 2015 Just now, الصـقر said: اخي وحبيبي الغالي الصقر كل الشكر والتقدير لكلماتك الجميلة لا يسعني الا ان اقول بارك الله فيك وجزاك كل الخير ويديم الاخوه بيننا 1
وائل الاسيوطي قام بنشر نوفمبر 23, 2015 قام بنشر نوفمبر 23, 2015 انتظر ابداعك الجديد علي احر من الجمر ووفقك الله لكل ماتحبه وترضاه وزادك من علمه ياحبذا لو دعمت الشرح بملف تطبيق هأدعيلك اكثر والله 1
ياسر العربى قام بنشر نوفمبر 23, 2015 الكاتب قام بنشر نوفمبر 23, 2015 5 minutes ago, وائل الاسيوطي said: انا عارف انكم مكسلين تفضل التطبيق صلاحيات.rar 1
محمد حسن المحمد قام بنشر نوفمبر 23, 2015 قام بنشر نوفمبر 23, 2015 (معدل) السلام عليكم ورحمة الله وبركاته أستاذ جديد ودرس مفيد ...نكن كل احترامنا وتقديرنا لأساتذتنا الذين ينقبون عن النفائس من أمهات الكتب يبحثون بين السطور ليغرسوها في الصدور نبتات رائعة الجمال يسقونها بمداد المحبة التي تغشى القلوب .. أخي الحبيب الصقر برعت وواظبت ببرنامج شرح الفورم .. جزاك الله خيرا أخي الحبيب ياسر برعت كذلك بشرح صلاحيات الدخول وسندخل معك في رحاب دروسك وأنت مضياف ....ماذا بعد الدخول؟ بمعنى ننتظر دروسا أخرى هامة فوطن نفسك على العطاء . لا تؤاخذني على خطأي لأنه ليس على المريض حرج تقبل تحياتي والسلام عليكم. تم تعديل نوفمبر 24, 2015 بواسطه محمد حسن المحمد 6
عبد العزيز البسكري قام بنشر نوفمبر 23, 2015 قام بنشر نوفمبر 23, 2015 السّلام عليكم و رحمة الله و بركاته درس رائع .. هام و مميّز و مفيد .. و شرح أكثر من الرّائع بارك الله فيك أستاذنا الفاضل " ياسر العربي " على الاطلالات الممتازة .. جزاك الله خيرًا و زادها بميزان حسناتك و زادك من علمه و فضله فائق إحتراماتي و إعجاباتي 1
ياسر خليل أبو البراء قام بنشر نوفمبر 23, 2015 قام بنشر نوفمبر 23, 2015 أخي وحبيبي في الله ياسر العربي لقد أبدعت في هذا الموضوع بشكل كبير جداً .. وطرحك في منتهى الروعة والموضو متميز ومفيد وبحمد الله وتوفيقه قمت بتغطيته بشكل ممتاز .. ولكن اسمح لي ببعض الملحوززات الصغيرة جداً .. قد لا تهم الكثيرين ولكن تهمني أولاً يجب مراعاة بدء انتشار التعامل مع 64 بت ..فمتنساش إخوانك الذين لديهم ويندوز 64 بت وأوفيس 64 بت في الفورم قم باستبدال أسطر الإعلان بهذه الأسطر ليتوافق مع 32 بت و64 بت #If VBA7 Then Private Declare PtrSafe Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare PtrSafe Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hwnd As LongPtr, ByVal nIndex As Long) As Long Private Declare PtrSafe Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare PtrSafe Function DrawMenuBar Lib "User32" (ByVal hwnd As LongPtr) As Long #Else 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 #End If ثانياً أحب التخلص من الزيادات الغير مرغوب فيها فمثلا يوجد موديول 1 فيه أمر بإظهار الفورم 1 ، ولا وجود للفورم ومن ثم لا داعي للموديول (راعي أن هناك من يقتبس وفقط .. بالتالي ستكون زيادة ليس لها داعي) ثالثاً : في كود زر الامر دخول CommandButton1 قمت بوضع السطر التالي If Application.WorksheetFunction.VLookup(ComboBox1.Value, Users.Range("A2:B50"), 2, 0) = TextBox1.Text Then في المرفق الخاص بك جعلت النطاق L50 (لما قمت بتوسيع النطاق بهذا الشكل ؟ لما لم تكتفي بالعمودين اللذين بهما أسماء المستخدمين وكلمات السر رابعاً : حاول استخدام برنامج يقوم بضبط أسطر الكود ليسهل الإطلاع عليه خامساً : لا يسعني إلا أن أقول لك جزيت خيراً .. جزيت خيراً .. جزيت خيراً .. فوالله إن الموضوع رائع وجد مفيد ومتميز وما أردت إلا النقد البناء الذي يسهم في علو شأن الموضوع لا أن أبخسه حقه تقبل وافر تقديري واحترامي 4
Yasser Fathi Albanna قام بنشر نوفمبر 23, 2015 قام بنشر نوفمبر 23, 2015 اخى الحبيب الغالى / ياسر العربى ما شاء الله عليك شرحك وأسلوبك فى توصيل المعلومة رائع زادك الله من العلم الكثير والكثير وأدام عليك الصحة والعافية تقبل خالص تحياتى وتقديرى 1
عبد العزيز البسكري قام بنشر نوفمبر 23, 2015 قام بنشر نوفمبر 23, 2015 السّلام عليكم و رحمة الله و بركاته إلى أستاذي القدير " ياسر خليل أبو البراء" أو كل من لديه معلومات .. لو تفضّلت إعطائي لمحة بسيطة وجيزة و مختصرة عن الفرق بين 32 بايت و 64 بايت .. منذ مدة و أنا أسمع بهذا لكن لحد الآن لم أستطع فهم الفرق بينهما .. فائق إحتراماتي لشخصك الكريم 1
ياسر خليل أبو البراء قام بنشر نوفمبر 23, 2015 قام بنشر نوفمبر 23, 2015 أخي الكريم عبد العزيز أنا لا أفهم التفاصيل الكاملة للفرق بين النطامين 32 بت و64 بت ..لكن ما أستطيع قوله أنه إذا كانت لديك رامات عالية أكبر من 2جيجا وبروسيسور عالي فيفضل استخدام نظام الـ 64 بت في الويندوز والأوفيس لديك لكي تستغل كامل طاقات جهازك وساعتها ستلاحظ الفرق في السرعة والأداء والخفة تقبل تحياتي 1
عبد العزيز البسكري قام بنشر نوفمبر 23, 2015 قام بنشر نوفمبر 23, 2015 السّلام عليكم و رحمة الله و بركاته بارك الله فيك أستاذي القدير " ياسر خليل أبو البراء " على الشّرح المميّز للفرق بين النّظاميْن تمام .. فهمت منك الآن أوجه الاختلاف .. فائق إحتراماتي 1
وائل الاسيوطي قام بنشر نوفمبر 23, 2015 قام بنشر نوفمبر 23, 2015 اين اسطر الاعلان التي سيتم استبدالها اخي ياسر
ياسر خليل أبو البراء قام بنشر نوفمبر 23, 2015 قام بنشر نوفمبر 23, 2015 شوف الفورم الموجود اللي اسمه elmalak واعمل عليه كليك يمين ثم View Code ستجد الأسطر في بداية الكود الخاص بالفورم ..
ياسر العربى قام بنشر نوفمبر 23, 2015 الكاتب قام بنشر نوفمبر 23, 2015 (معدل) اخي الغالي وائل الاسيوطي شكرا لمرورك الكريم هذا لان موضوعى بكم يثمر اخي واستاذي محمد حسن المحمد شفاك الله وعافاك وربنا ما يحرمناش من طلاتكم الجميلة لا يوجد اخطاء اذا لا يوجد اعتذار كل الشكر والتقدير لشخصكم الكريم اخي وحبيبي عبد العزيز البسكري يكفيني كلماتك الجميلة وجملك التي تجعلنا نتسابق الى المزيد من العطاء والمساعدة والمساهمة داخل هذه الاسرة الجميلة استاذي واخي وحبيبي ابو البراء نقد بناء بقى ولا مش بناء اديك علمت علينا وخلاص مهو لازم حد يرخم عليا مينفعشي الموضوع يعدي بالساهل كدا علي العموم تكرم حبيبي علي ملاحظاتك فانا والله ما وضعت الموضوع وما جائتني الفكرة الا وانا في العمل وكنت احاول ان الم الموضوع بسرعه وانجزه وطبعا المرفق كان مثال كنت قد وضعت به شاشة الدخول فقمت بحذف معظم الاضافات الغير مهمه داخل موضوعي ولكني فوت بعض الملاحظات وان شاء الله يبقي فيه تركيز اكتر باذن الله اخي الحبيب ياسر فتحي لك مني كل الاحترام علي لمرورك العطر زادك الله من علمه وخلي بالك من شروحاتك اصل زي ما انت شايف في ناس مش بتسيب حد في حالها :) :) مرفق التعديلات صلاحيات - Copy.rar تم تعديل نوفمبر 23, 2015 بواسطه ياسر العربى 2
ياسر خليل أبو البراء قام بنشر نوفمبر 23, 2015 قام بنشر نوفمبر 23, 2015 أخي الحبيب ياسر .. معلش أصلها حاجة في الطبع ، والطبع يغلب التطبع حاول تستفيد من الموضوع التالي عشان شكل الكود يبقا منظم وسهل الإطلاع عليه من هنا 1
ياسر العربى قام بنشر نوفمبر 23, 2015 الكاتب قام بنشر نوفمبر 23, 2015 زي كدا يعني صلاحيات - Copy.rar 1
ياسر خليل أبو البراء قام بنشر نوفمبر 23, 2015 قام بنشر نوفمبر 23, 2015 تمام يا أبو العربي كدا 99 فل و12 ..
ياسر العربى قام بنشر نوفمبر 23, 2015 الكاتب قام بنشر نوفمبر 23, 2015 1 minute ago, ياسر خليل أبو البراء said: تمام يا أبو العربي كدا 99 فل و12 .. جيت تنقصها طلعت زيادة يامعلم 99 12 هي 100 و10 اذن ناخد واحد من 12 علي 99 يبقي 100فل و11 وعدت كدا يامعلم
ياسر خليل أبو البراء قام بنشر نوفمبر 23, 2015 قام بنشر نوفمبر 23, 2015 لا غلط .. هي في الأصل 100 فل و 14 (إنت هتكروتنا في التحليل بتاعك) 1
وائل الاسيوطي قام بنشر نوفمبر 23, 2015 قام بنشر نوفمبر 23, 2015 طيب سؤال اخي ياسر هل يمكن زياده الصفحات
ياسر العربى قام بنشر نوفمبر 23, 2015 الكاتب قام بنشر نوفمبر 23, 2015 انا بحاول اشوف ليها مخرج ما انت معقدنا ومالو يا معلم مسيري هعلم عليك هيجيلك يوم واقولك تعرف تقول سبع قفشات بتاعتك دي اما بالنسبة لاخي وائل ينفع تعمل صفحات من الشرقية لاسيوط بس هنعمل تعديل بسيط علي صفحة اليوزرز نوسع نطاق المستخدمين علي قد الصفحات وهبقي احط ليها مثال ليك بس حاليا يدوب اقدر اتقلب انام عشان نصحى علي الشغل باذن الله وهناك دماغي بتشتغل كويس واحطلك الامثلة اللي انت عايزها سلام 1
أبو أنس80 قام بنشر نوفمبر 24, 2015 قام بنشر نوفمبر 24, 2015 تسلم يدك استاذياسر عمل رائع و مدهش الله طول عمرك
ياسر العربى قام بنشر نوفمبر 24, 2015 الكاتب قام بنشر نوفمبر 24, 2015 1 hour ago, أبو أنس80 said: تسلملي حبيبي ابو انس كل الشكر والتقدير لمروركم الكريم 1
الردود الموصى بها
انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد
يجب ان تكون عضوا لدينا لتتمكن من التعليق
انشئ حساب جديد
سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .
سجل حساب جديدتسجيل دخول
هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.
سجل دخولك الان