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

إغلاق جميع أوراق العمل بدون حفظ


gelani

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

عند تصميم برنامج من الضروري وضع كلمة سر في حالة عدم معرفتها يتم إقفال البرنامج اجبارياً . ولكن عند فتح ورقة عمل أخرى وكتابة أي جملة بها فإنه يتم أخذ رأي المستخدم في الحفظ عند الخروج وعند الغاء الأمر يتم فتح البرنامج المحمي تلقائياً وبالإمكان إستخدامه .

السئوال هل يوجد كود يقوم بإغلاق جميع أوراق العمل المفتوحة تلقائيا بدون حفظ .

تحياتي وتقديري لجميع الأعضاء المحترمين .

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

إذا أردت إغلاق الملف بدون حفظ التغييرات قم بإضافة السطر التالي مع الكود.

ActiveWorkbook.Saved = True
مع مراعاة إزالة السطر التالي من الكود والخاص بحفظ الملف قبل الإغلاق
ActiveWorkbook.Save
ليصبح الكود في نهاية المطاف كالتالي:
Sub Auto_Open()

    Sheets("main").Select
    Application.DisplayFullScreen = False
    Application.CommandBars("Worksheet Menu Bar").Enabled = True
    Application.CommandBars("Standard").Visible = False
    Application.CommandBars("Formatting").Visible = False
    Application.CommandBars("Drawing").Visible = False
    Application.CommandBars("Reviewing").Visible = False
    Application.CommandBars("Web").Visible = False
    Application.DisplayStatusBar = False
    Application.DisplayFormulaBar = False

a = InputBox("أدخل كلمة المرور")
If a <> 123 Then
MsgBox "عفواً. ليس لديك تصريح بإستخدام البرنامج", vbExclamation, "كلمة مرور خاطئة"
ActiveWorkbook.Saved = True
Application.Quit
End If
End Sub

_____.rar

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

أشكر لكم اهتمامكم ومتابعتكم .

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

جرب فتح برنامج الإكسل ثم أكتب على ورقة العمل أي قيمة ثم افتح البرنامج المرفق ستلاحظ أنه بالإمكان إختراقة بالطريقة المشار اليها وهي إلغاء الأمر حيث يفتح البرنامج بطريقة سهلة .

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

تحياتي وتقديري لكم والشكر موصول للجميع سلفاً.

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

الكود التالي يعمل على إغلاق جميع المصنفات المفتوحة:

Public Sub CloseAllWorkbooks()

  Dim Wkb As Workbook

    For Each Wkb In Workbooks
      If Wkb.Name <> ThisWorkbook.Name Then
          Wkb.Saved = True
          Wkb.Close
      End If
    Next Wkb
    
    With ThisWorkbook
       .Saved = True
       .Close
    End With

End Sub
ويصبح الكود في نهاية المطاف كالتالي:
Sub Auto_Open()

    Sheets("main").Select
    Application.DisplayFullScreen = False
    Application.CommandBars("Worksheet Menu Bar").Enabled = True
    Application.CommandBars("Standard").Visible = False
    Application.CommandBars("Formatting").Visible = False
    Application.CommandBars("Drawing").Visible = False
    Application.CommandBars("Reviewing").Visible = False
    Application.CommandBars("Web").Visible = False
    Application.DisplayStatusBar = False
    Application.DisplayFormulaBar = False

a = InputBox("أدخل كلمة المرور")
If a <> 123 Then
MsgBox "عفواً. ليس لديك تصريح بإستخدام البرنامج", vbExclamation, "كلمة مرور خاطئة"
CloseAllWorkbooks
End If
End Sub

_____.rar

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

رائع جـــــــــــــــــــــــــــداً

هذا ما كنت أبحث عنه . أسأل الله أن يوفقك وأن يزيدك علماً وأن يحفظك ومن تحب من كل مكروه.

الكود يعمل بشكل رائع حيث أنه في السابق من السهولة اختراق الحماية بالطريقة المشار اليها .

تحياتي وتقديري لك ولجميع الأعضاء في هذا المنتدى الرائع .

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

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

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

Important Information