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

حماية الملف المحتوي على وحدات الماكروا أثناء عدم تفعيلها


Salem2020
إذهب إلى أفضل إجابة Solved by Salem2020,

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

السلام عليكم

لدي ملف إكسل متكامل لإدارة مدرسة يحتوي على وحدات ماكرو ويوزرفورم رئيسي وفرعي وكلمات مرور

المشكلة الوحيدة التي تواجهني هي أنه إذا قام شخص آخر بنسخ الملف وفتحه على جهاز كمبيوتر آخر غير مفعله فيه وحدات الماكرو سيتم فتح الملف مباشرة متجاوزا كلمات المرور وواجهة اليوزرفورم غيره

هل هناك طريقة تمكنني من تقييد الملف ومنع فتحه في حال لم تكن وحدات الماكرو مفعلة على الجهاز الآخر ؟ ... وشكرا

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

وعليكم السلام-وما الضرر من هذا فلابد دائما من نشر العلم

ولو كتم احد  الأساتذة العلم عنك ما وصل اليك

ولكن تفضل هذا الرابط من داخل المنتدى ,فكان عليك لزاما استخدام خاصية البحث بالمنتدى

هذا كود لإظهار نافذة تفعيل الماكرو مع تشغيل الملف

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

  • أفضل إجابة

جزاك الله خير ... تم العثور على المطلوب في موقع أجنبي ولكي يستفيد الغير فكل ما عليك هو اضافة ورقة عمل جديدة داخل المصنف الذي ترغب بحمايته وكتابة رسالة تطلب من المستخدم تمكين وحدات الماكروا وبعد ذلك الذهاب الى محرر الاكواد بالضغط على ctrl + f11 والضغط مرتين على thisworkbook ثم لصق الكود التالي في المحرر

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ws As Worksheet, wsSplash As Worksheet
Application.ScreenUpdating = False
Application.EnableEvents = False
Set wsSplash = Worksheets("Splash screen")
wsSplash.Visible = xlSheetVisible
For Each ws In ThisWorkbook.Worksheets
   If ws.Name <> "Splash screen" Then ws.Visible = xlSheetVeryHidden
Next ws
Cancel = True
ThisWorkbook.Save
For Each ws In ThisWorkbook.Worksheets
   If ws.Name <> "Splash screen" Then ws.Visible = xlSheetVisible
Next ws
wsSplash.Visible = xlSheetVeryHidden
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Private Sub Workbook_Open()
Dim ws As Worksheet, wsSplash As Worksheet
Dim Pswd As String
Pswd="myPassword"
Application.ScreenUpdating = False
Set wsSplash = Worksheets("Splash screen")
wsSplash.Visible = xlSheetVisible
For Each ws In ThisWorkbook.Worksheets
   If ws.Name <> "Splash screen" Then 
       If ws.Name="Sheet1" Then
           If InputBox("Please enter your password")=Pswd Then ws.Visible=xlSheetVisible
       Else
           ws.Visible = xlSheetVisible
       End If
   End If
Next ws
wsSplash.Visible = xlSheetVeryHidden
Application.ScreenUpdating = True
End Sub

وكل ما عليك هو استبدال كلمة (splash screen) بأسم الصفحة التي أعددتها للتنبيه ومن ثم الحفظ 

بعد ذلك قم بإلغاء تفعيل وحدات الماكروا وافتح الملف ستظهر لك فقط الصفحة رقم 1 التي انشأتها وبها رسالة تطلب منك تمكين وحدات الماكروا وعند عمل ذلك وإعادة تشغيل الملف ستختفي الصفحة رقم 1 التي انشأتها وسيتم عرض بقية المصنف

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

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