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

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

قام بنشر

السلام عليكم

اخى السائل khhanna

انت سالت عن حمايه الخلايا التى تحتوى على صيغ

لكن الكود بحمايه كل الشيت

سارفق ملف جربه

عساه يكون اقرب لما تريد

حيث لا يسمح لك بالتحرير(الكتابه)في الخليه المحتوية على صيغة

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Target.HasFormula Then
ActiveSheet.Protect
Else
ActiveSheet.Unprotect
End If
End Sub

Protect_Formulas.rar

قام بنشر

بالإضافة الى افكار العباقرة الذين سبقوني

الأستاذ اكرم الغامدي

و الأستاذ ابو اسامة

هذه فكرة اخرى

تعتمد الفكرة على انيتم المرور على كل اوراق الملف

و حماية الورقة و التعامل مع الخلايا الفارغة و قفل جميع الخلايا المكتوب بها من السابق

بحيث لن يستطيع المستخدم تعديل اي ادخالات سابقة قبل فتح الملف

Private Sub Workbook_Open()

For s = 1 To Sheets.Count

Sheets(s).Select

ActiveSheet.Unprotect

E = ActiveSheet.UsedRange.Rows.Count

R = ActiveSheet.UsedRange.Columns.Count

For q = 2 To R

For W = 3 To E

If Cells(W, q).Value <> "" Then

Cells(W, q).Locked = True

Else

Cells(W, q).Locked = False

End If

Next W

Next q

ActiveSheet.Protect Password:=MyPassword, DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True _

, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True



Next s



End Sub

ولكن المشكلة الوحيدة للكود انه لن يقوم باغلاق الخلايا التي ناتج الدالة بها = "" فراغ

وقد يستطيع احد الأساتذة تعديلة ليشمل ذلك

protectSheets_____.rar

قام بنشر

استاذ ابو اسامة

انا الذي يجب ان اشكرك

فلقد تعلمت منك

ActiveSheet.UsedRange

بينما كان الكود في السابق يمر على جميع خلايا الورقة او الأوراق و يأخذ وقت طويل

تحياتي وتقدير لشخصك الكريم

قام بنشر

الأخوة الكرام

السلام عليكم

جزاكم الله كل خير علي ما تقدموه لمساعدة الآخرين وجعله الله في ميزان حسناتكم

ولكن لى ملاحظه

كود ابو اسامه جميل جدا ويعمل علي الملف كله وليس به مشاكل

اما كود الأستاذ احمد يعقوب عند تجربتة بعض الخصائص لاتعمل مثل ( ادراج صف او عمود - وكذلك عملية الفرز لاتعمل )

وللجميع كل التحية والشكر والتقدير

قام بنشر

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

اخي khhanna

علشان نستوضح المطلوب اكثر

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

يقوم باغلاق جميع الخلايا

عند فتح الملف يقوم بالمرور على كل خلايا الملف و اي خلية بها كتابة او قيمة يقوم باغلاقها ثم حماية الورقة كاملة

اذاكنت تريد اغلاق الخلية التي بها الدالة بحيث لن يستطيع المستخدم الكتابة بها او تعدي الدالة و بدون حماية الورقة

يمكنك ذلك عن طريق التحقق من صحة Validation

في المرفق تم تعديل الكود السابق

بحيث يقوم الكود باغلاق الخلايا التي بها دوال فقط مع حماية كامل الورقة

و

جرب الغاء الحماية ثم تعديل الدالة الموجود ايضا لن تستطيع تعديلها

بسبب استخدام التحقق من صحة Validation

آمل ان تفي احد هاتين الطريقتين بالغرض المطلوب

protectSheets__________.rar

  • Like 1
قام بنشر

شكراُ يا استاذ احمد

تم عمل المطلوب و الملف اشتغل كويس

ولكن اذا عملت معادلة جديدة فى الملف لا يتم حمايتها الا اذا

قفلت و فتحت الملف تانى علشان الماكرو يحمى المعادلة

فهل ممكن يحمى المعادلة فوراً بعد الكتابة

و شكراً

قام بنشر

السلام عليكم

بارك الله في جميع المشاركين

و بعد اذن اخي احمد المبدع

اخي الفاضل

اولا يجب ان تحدد خلايا الشيت بالكامل و كلك يمين و تختار تبويب format cells

و تختار تبويب protection وتجعل المربع الذي امام Locked فارغا ثم OK

بعد ذلك و لمجرد ان يتم الكتابة في اي خلية سيبدأ عمل الكود

تحياتي

protectSheets1__________.rar

قام بنشر
اسف للازعاج

ولكن خطر لى سؤال لو ان الملف يوجد به كم من المعادلات هل يوثر

على سرعة تنفيذ الماكرو

ولك كل الشكر

طبعا اخي العزيز

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

اذا كان بها صيغة يغلقها او غير ذلك يرفع الغلق عنها

آمل ان تكون وضحة الفكرة

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

  • 2 years later...

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