اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

إلغاء مفتاح الشيفت عند فتح ملف الاكسيل لحماية برنامجي


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

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

أعزائي وأخواني الأفاضل ...

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

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

أفيدوني وجزاكم الله خير.

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

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

اما لو محتاج طريقة احترافية

ذكرت هذه الطريقة في مواضيع سابقة

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

مع فورم تسجيل الدخول ايضا 

كلمة المرور لفورم التسجيل 

اسم المستخدم Yasser

كلمة المرور 123

كلمة مرور ملف الاكسيل المحمي 01097192367

تقبل تحياتي

 

اجبار الماكرو على العمل.rar

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

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

وأخواني الأفاضل ...

هذا البرنامج المحمي عن طريق اليوزر فورم..

والمطلوب حل مشكلة (عند فتح البرنامج مع ضغط على مفتاح الشيفت يتجاوز اليوزر فورم ويفتح البرنامج مباشرة... )

    أرجو أن تكون المطلوب ماضح .... وجزاك الله خير.

bjn3000.rar

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

 

الاخ abajhnoon

 

استبدل حدث

Workbook_Open

بهدا الحدث

 

 

Private Sub Workbook_Open()
'
Shift_Down_Then_Open
If Sheets("Main").Range("B1") = True Then GoTo GoGO
'
Application.EnableCancelKey = xlDisabled
Application.Visible = False
Call Module1.HideAllSheets
UFMain.Show
Call Sh_Hi_Toolbar.hide_toolbar
Workbooks.Application.Visible = True
GoGO:
Sheets("Main").Select
Range("A1").Select
ActiveWindow.Zoom = True
Sheets("Main").Range("B1") = False
'
End Sub

 

وضع هذا الكود في موديول

 

 

Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer

Sub Shift_Down_Then_Open()
'
Sheets("Main").Range("B1") = False
If GetKeyState(16) < 0 Then
    Sheets("Main").Range("B1") = True
Else
    Sheets("Main").Range("B1") = False
End If
'
End Sub

 

واخبرني بالنتيجة

 

 

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

اخي الكريم تفضل ليس الشيفت فقط ولكن كل ما يمكن ان يضغطه المستخدم من ازرار  غير مرغوب فيها 

فقط انقل الماكرو وفى حدث workbook_open اكتب call dis

 

Sub dis()
Application.OnKey "^{n}", "" 'new workbook

Application.OnKey "^{f12}", ""  'ctlr+f12
Application.OnKey "^{f12}", "" 'ctlr+f12
Application.OnKey "^{f11}", "" 'ctlr+f11
Application.OnKey "^{f10}", "" 'ctlr+f10
Application.OnKey "^{f9}", "" 'ctlr+f9
Application.OnKey "^{f5}", "" 'ctlr+f5
Application.OnKey "^{f4}", "" 'ctlr+f4
Application.OnKey "^{f3}", "" 'ctlr+f3
Application.OnKey "^{f2}", "" 'ctlr+f2
Application.OnKey "^{f1}", "" 'ctlr+f2
Application.OnKey "^{p}", "" 'ctlr+P
Application.OnKey "^{ESC}", "" 'ctlr+esc

Application.OnKey "+{f12}", "" 'shift+f12
Application.OnKey "+{f11}", "" 'shift+f11
Application.OnKey "+{f10}", "" 'shift+f10
Application.OnKey "+{f9}", "" 'shift+f9
Application.OnKey "+{f7}", "" 'shift+f7
Application.OnKey "+{f5}", "" 'shift+f5
Application.OnKey "+{f3}", "" 'shift+f3
Application.OnKey "+{ESC}", "" 'shift+f3

Application.OnKey "%{F10}", "" 'alt
Application.OnKey "%{F11}", "" 'alt
Application.OnKey "%{F8}", "" 'alt
Application.OnKey "%{f4}", "" 'alt
Application.OnKey "%{f3}", "" 'alt
Application.OnKey "%{f2}", "" 'alt
Application.OnKey "%{f1}", "" 'alt
Application.OnKey "%{ESC}", "" 'alt

Application.OnKey "{F11}", ""
Application.OnKey "{F12}", ""
Application.OnKey "{F9}", ""
Application.OnKey "{F5}", ""
Application.OnKey "{F4}", ""
Application.OnKey "{F2}", ""
Application.OnKey "{F3}", ""
Application.OnKey "{F1}", ""
Application.OnKey "{ESC}", ""
End Sub

 

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

  • 2 weeks later...
  • 2 weeks later...

أخي عمر الحسيني

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

الكود مشتغل في مشكله في Function

ممكن عشان جهازي ويندوز 8  64 بت

وممكن كود إذا تم إظهار شريط الادوات يقوم بكتابة في الصفحة الرئيسية الخلية (a1 ) رقم صفر تلقائي

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

استبدل السطر الذي يحدث به خطأ بالسطر التالي

Declare PtrSafe Function GetKeyState Lib "user32" Alias "GetKeyState" (ByVal nVirtKey As Long) As Integer

 

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

مشكور أخي الكريم على الرد السريع

وبالنسبة للموضوع الثاني

ممكن كود إذا تم إظهار شريط الادوات يقوم بكتابة في الصفحة الرئيسية الخلية (a1 ) رقم صفر تلقائي

وجزاك الله خير.... 

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

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