اذهب الي المحتوي
أوفيسنا

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


الردود الموصى بها

بسم الله الرحمن الرحيم

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

عن طريق إخفاء الصفوف و الأعمدة

السلام عليكم ورحمة الله وبركاته

### لعمل هذه الحماية وإظهار الباسوورد على شكل نجوم يجب توافر بعض الشروط

# أولا : الورقة الرئيسية يجب إن تكون هي الورقة الأولى في ترتيب الأوراق في ( تاب الأوراق )

# ثانيا : نقل الكود إلى الملف الخاص

1 - يتم نسخ عدد إل 2 فورم إلى الملف الخاص بك

2 - يتم نسخ الأكواد من ( ThisWorkbook ) إلى نفس المكان في الملف الخاص بك

###

في الروتين الفرعي ( Workbook_SheetActivate )

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

في المتغير ( MySheets ) بين علامتي التنصيص ويفصل بينهما علامة القسمة ( / )

فإذا كنا نرغب بعمل هذه الحماية لثلاثة أوراق أسمائهم على التوالي :

( Test1 ) & ( Test3 ) & ( Test5 )

يكون المتغير ( MySheets ) على الشكل التالي :

MySheets = "Test1/Test3/Test5"
ويتم وضع الباسوورد الخاص لكل منهما في المتغير ( MyPassword ) بنفس الأسلوب السابق مع أسماء الأوراق مع مراعاة ترتيب الباسوردات بنفس ترتيب الأوراق فإذا كانت : الورقة ( Test1 ) و الباسوورد الخاص بها هو ( Pas1 ) الورقة ( Test3 ) و الباسوورد الخاص بها هو ( Pas3 ) الورقة ( Test5 ) و الباسوورد الخاص بها هو ( Pas5 ) يكون المتغير ( MyPassword ) على الشكل التالي :
MyPassword = "Pas1/Pas3/Pas5"

###

وهناك ملاحظتين يجب الانتباه إليهما :

أولا ::: المتغيران ( MySheets & MyPassword ) هما المسموح بالتعديل عليهما فقط فلا داعي لتعديل اى شئ آخر بالكود

فالكود حساس وسيتضح ذلك لمن يحبون التعديل

ثانيا ::: إذا كانت الأوراق المعنية لها حماية من التعديل بأحد الطريقتين التاليتين :

1 - الأولى عن طريق قائمة ( أدوات / حماية / حماية ورقة )

2 - الثانية عن طريق كود

###

فلابد من إتباع أسلوب الحماية باستخدام ( UserInterfaceOnly ) الذى نوهنا عنه منذ أكثر من عامين ونصف العام

و إلا ستتم مقاطعة الكود وظهور رسالة خطأ

وهذا الخطأ ليس خطأ برمجيا فيمكن إخفاء هذا الخطأ وتخطيه

ولكن المقصود من هذا الخطأ المتعمد هو إعلامك بأنه لابد من استخدام أسلوب ( UserInterfaceOnly )

في حالة وجود حماية ضد تعديل الأوراق كما أشرت سابقا لتجنب مقاطعة الكود أو توقفة عن العمل

و سيعمل الكود على توجيهك إلى رابط موضوع ( UserInterfaceOnly ) للأطلاع على هذا الأسلوب

المرفق الاول :::

ملف البرنامج

_________________________________________________.rar

المرفق الثانى :::

ملف فيديو لشرح الطريقة :

Test_1.rar

تم تعديل بواسطه أبو تامر
رابط هذا التعليق
شارك

استاذ : أبو تامر :fff:

تم التحميل .. وقبل التجربة .. ولثقتنا فلي معاليك ، نقول لك جميعاً في صوت واحد ألف شكر ، سيكون هذا الإبداع في سجل أعمالك الخالده .. وتسلم ايدك :clapping: و..... :clapping: و..... :clapping: و...... :clapping:

والي اللقاء .. بعد التجربة وتنفيذ تعليماتك السابقة

أخوك

new4a

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله تعالى وبركاته

تحية وسلام للأستاذ القدير أبو تامر ، الكلمات لا تُوَفي حقك في مابذلته في هذا المنتدى،

ومع ذلك أستاذنا القدير أبو تامر ألف شكر على الموضوع

رابط هذا التعليق
شارك

عزيزى الغالى ابوتامر

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

أى حتى تظل سرية الباسوورد لمن يجوز له فتح الشيت فقط ؟؟

شاكر لك

رابط هذا التعليق
شارك

الاخ يوسف عطا

يمكن ابتكار اكثر من طريقة اخى يوسف

ولكن ليس الان فأمهلنى بعض الوقت

إبداعاتك المميزة تجعلنا ننتظرها بشغف

ولكن على أقل من مهلك

نحن لمنتظرون

وفقك الله

رابط هذا التعليق
شارك

الاخ يوسف عطا

الامور ماشى معاك حلاوة

اليك طريقة ظريفة :::

اولا :::

ستضع فى الملف كما اشرنا سابقا

اسماء الاوراق و الباسووردات المناظرة لها عادى جدا

ولكنها وهمية ( اسماء الاورواق و الباسووردات ) اى مزيفة

ثانيا :::

سنقوم بتعديل بسيط فى الكود وهو كالتالى :::

فى احداث ( ThisWorkbook )

يوجد الروتين ( Private Sub Workbook_SheetActivate )

سنضيف اليه بضعة سطور

يوجد فى هذا الروتين السطر التالى :::

HidHidHod = MySheets
نضع اعلى هذا السطر السطور التاليه
On Error Resume Next
Dim oReg As Object
Set oReg = CreateObject("Wscript.Shell")
MySheets = oReg.RegRead("HKCU\Control Panel\Omar\MySheets")
MyPassword = oReg.RegRead("HKCU\Control Panel\Omar\MyPassword")
On Error GoTo 0
ليصبح هكذا
On Error Resume Next
Dim oReg As Object
Set oReg = CreateObject("Wscript.Shell")
MySheets = oReg.RegRead("HKCU\Control Panel\Omar\MySheets")
MyPassword = oReg.RegRead("HKCU\Control Panel\Omar\MyPassword")
On Error GoTo 0

HidHidHod = MySheets

بذلك اصبحت اسماء الاوراق و الباسووردات الخاصة بها الموجود بالملف لا قيمة لها

اى وهمية وخادعة

الى هنا نصف الطريق

شغل الملف فلن تفتح معك الاوراق التى سبق ان كانت تعمل مع الكود الاصلى ولن يطلب منك الباسوورد

لانه لم يتعرف على اسماء الاوراق و الباسووردات الخاصة بها التى سبق ان كان يتعامل معها

###

فى الملف المرفق واسمة ( Lade Sheets And Password.vbs )

يتم تحريره بواسطة اى معالج نصوص او عن طريق ال نوت باد ( Notepad )

نضع اسماء الاوراق و الباسووردات المناظرة لها الحقيقية

فى المتغير ( MySheets & MyPassword) بنفس الطريقة التى اشرنا اليها فى بداية الموضوع

و نحفظ الملف

ثم نقوم بنتفيذه او دبل كليك عليه

ثم نقوم بحفظ هذا الملف المرفق فى مكان امن بعيدا عن المستخدمين

وتتم هذه العملية الخاصة بالملف ( Lade Sheets And Password.vbs )

كلما حدث الاتى :::

تغيير او تعديل اسماء الاوراق او الباسوووردات

اعادة تركيب الاكسيل او الويندوز

وطبعا عند عمل فورمات

مع تحياتى

الملف المرفق ::: ( Lade Sheets And Password.vbs )

Lade_Sheets_And_Password.rar

تم تعديل بواسطه أبو تامر
رابط هذا التعليق
شارك

الله ينور

الواحد فرحان بنفسه قوى يا عزيزى الغالى ابو تامر

لأنى مع عمالقة المنتدى

اللهم زدهم وزدنا علماً

ربنا يبارك فيك وفى أولادك وفى كل ما تمتد إليه يداك

رابط هذا التعليق
شارك

السلام عليكم

أستاذي الفاضل أبو تامر

يا معلم يا كبير

منذ فترة وأنا أرى أعمالك الإبداعية ، وشغلك ألاحترافي ، فلا أملك إلا أن أهلل وأكبر وأسأل الله أن يمتعك

بصحتك وعافيتك ،، ويفرغك لهذا العطاء المنقطع النظير .....

خلاصة القول : ربي يحفظك وما شاء الله لا قوة إلا بالله ...

أستاذي لدي مجموعة من الملفات تدور فكرتها حول ذات الموضوع ،،، ولي فترة أحاول أن أجد الوقت للتعديل

أو تحليل الأكواد الموجودة بها ،،، ولكن لم تتسنى لي الفرصة ولم يسعفني الوقت ...

لذا فأنني أهديها إليك وبما أنك تشتغل على نفس الموضوع وكما قلت أن الامور ماشية معاك حلاوة ،، وان شاء

الله تكون دائماً حلاوة يارب وكمان باللوز لو أمكن ...

تحياتي يا استاذي القدير

اخي اكرم الغامدي : احييك في هذا الليلية الرائعة ،،، اين أنت يا رجل لعل المانع خير ...

والسلام

اخي ابوتامر تفضل المرفق

PASS_SHEETS.rar

رابط هذا التعليق
شارك

السلام عليكم

أستاذنا العزيز الغالي أبو تامر

ما شاء الله

ولا قوة إلا بالله

الله يبارك فيك ...

تحياتي استاذي وأستاذ الكل

متعك الله بالصحة والعافية ،،

وحفظك من كل سوء

أخوك وتلميذك / طارق محمود

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاتة

الاخ يوسف عطا

شكرا لك اخى اللهم تقبل ولك مثله اخى يوسف

الاخ أكرم الغامدي

شكرا لك اخى اكرام

لا ارك الا فى رحلات الصيد الثمين

الاخ ziad ali

شكرا لك اخى

وشكر خاص على الهدية

الاخ TareQ M

شكرا لك اخى طارق

شكرا لجميع الاخوة

رابط هذا التعليق
شارك

  • 3 months later...

السلام عليكم ورحمة الله وبركاته

أخي الكريم / أبو تامر

مشكور اخي الكريم على مجهودك الأكثر من رائع

افادتنا كثيرا وتعلمنا منك كثيرا

انا عضو جديد ومكنتش بشارك بس اليوم لقيت حاجة تشد انتباهي

وقررت اني اشارك

وعندي استفسار على الكود الأكثر من رائع في وضع كلمة سر.

في الكود قد حددنا ان يكون هناك باسورد لكل شيت فى الورك بوك يسمى (Good) ---- وهذا غظيم وشغال 100%

ولكن اريد ان أضع باسورد على شيت أخر في ورك بوك أخريسمى (Bad) مع الملاحظة ان هناك Hyperlink بينهما

فعندمان نضغط على Hyperlink فى (Good) لنذهب الى (bad) فنجد ان الباسورد لا تعمل

مع العلم والملاحظة أنني قد وضعت الكود بورك بوك (Good) و (bad)

مع العلم أيضا ان الباسورد تشتغل لو فتحت (Bad) على حدى - دون أن أفتحة من hyperlink بداخل (GOOD)

انتظر اخى الكريم منك الرد العاجل

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information