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

حماية الخلية غير الفارغة


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

لمن يمهه الأمر

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

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

 

protect_non_empty.rar

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

جزاكم الله خيراً أخي الغالي سليم وبارك الله فيك

صراحة أعمالك كلها فيها إبداع وممتازة جداً ..

ولكن اسمح لي أن أنقدك كما مدحتك ..

أنت تعطي دائماً أسماكاً شهية بدون أن يعلم الأعضاء كيف استطعت أن تصطاد هذه الأسماك ..أقصد أنني أفضل تقديم الحلول مع شرح ولو مبسط وكيفية الاستفادة العملية من الملفات التي تهديها لنا ..

كمل جميلك عشان ندعيلك

images.jpg.4d1f285b9be5c98348f3e73cb8532

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

سلمت يمينك أخى الحبيب أ / سليم على كل أعمالك الرائعة وأتفق مع أخى الحبيب الغالى ياسر خليل

لا تعطنى سمكة ولكن علمنى كيف أصطاد

تقبل خالص تحياتى وتقديرى

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

اخواتي ياسر و .....بردو ياسر

الكود داخل الملف واضح جداً لكل من اراد ان يتطلع عليه

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

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

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

اولا /

 الشكر الجزيل للاخ الفاضل الاستاذ سليم حاصبيا

 

---------------------------------------------------------------------------

ثانيا /

بعد إذن الاستاذ سليم

المشكله في اصطياد السمكة يا استاذ ياسر ليس شرح الكود لانه حتى لو شرح الكود ينقصه من ان الكود مبني علي خطوات مسبقه إليكم الخطوات المسبقة محاوله مني:

اولا / نقوم بتعريف المدى اللي بالكود والمسمى  Prot_Range  نذهب إلي الشيت المسمى Sheet1 ثم من شريط الادوات نذهب إلي صيًغ  ثم إدارة الاسماء ثم جديد ونضع الاسم   Prot_Range

ونشير للخلايا أي نحدد الخلايا حسب رغبتنا في تطبيق العمل عليها وهنا في عمل الاستاذ سليم اشار للخلايا من A1  إلي Z255 ثم موافق خلاص إنتهينا من تسمية النطاق او المدى.والآن يأتي دور الاكواد نذهب لمحرر الاكواد الخاص بالصفحة  Sheet1 عام أي في ال  General ونضع هذا الإجراء :

'xxهنا نقوم بتسمية إجراء ونسميه اي إسم اي حرف وهنا إسمه  
Sub xx()
' salim  يقوم بإلغاء الحماية من علي الصفحة النشطه والتي كلمة المرور الخاصة بها هي 
ActiveSheet.Unprotect "salim"

إذاً' Prot_Rang إذا لم يتقاطع الإختيار بمدى النطاق المسمى 
If Not Intersect(Selection, Range("Prot_Range")) Is Nothing Then

' هنا الإشارة للمجال المختار وهو مدى النطاق في الصفحة النشطة بالخاصية  With
With ActiveSheet.Range("Prot_Range")

' تنشيط إقفال الخلايا
.Cells.Locked = True

'عدم إقفال الخلايا الفارغة التي لايوجد بها بيانات
.Cells.SpecialCells(xlCellTypeBlanks).Locked = False

' إغلاق الخاصية With
   End With

' يقوم بحماية الصفحة وعمل كلمة المرور salim
   ActiveSheet.Protect "salim"

   End If
 
   ActiveSheet.Protect "salim"
   
End Sub

 

ثم نضع الكود التالي في حدث تغيير الصفحة Sheet1

Private Sub Worksheet_Change(ByVal Target As Range)

'  إذا لم يتقاطع الهدف بالمدى وان نتائج الهدف يساوي واحد ‘ذاً
If Not Intersect(Target, Range("Prot_Range")) Is Nothing And Target.Count = 1 Then

'  عدم تمكين تطبيق الاحداث
Application.EnableEvents = False

'هنا بعد إدخال اي بيانات تأتي رسالة تفيد  حسب الموضح في الرسالة
mess = MsgBox(" بعد ادخال البيانات سوف يتم اقفال هذه الخلية" & vbNewLine & _
 "لا يمكن تغييرها الا من خلال كلمة السر في حال الموافقة اضغط نعم", vbYesNo, "تنبيه")
 
' عند الموافقة
If mess = vbYes Then

'xxهنا يتم إستدعاء الإجراء والمسمى 
 xx

' عند عدم الموافقة
 Else

' تراجع عن التطبيق
 Application.Undo

 End If
 End If
' تمكين تطبيق الاحداث
 Application.EnableEvents = True
End Sub

 

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

  • 5 months later...
  • 2 weeks later...

تم تجربة الكود  ولكن لى ملحوظة 

 عند تعبئة الخلية يعطى  الرسالة ولازم نضغط على موافق  هذا على كل خلية يتم تعبئتها  

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

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

2 ساعات مضت, tharwt said:

تم تجربة الكود  ولكن لى ملحوظة 

 عند تعبئة الخلية يعطى  الرسالة ولازم نضغط على موافق  هذا على كل خلية يتم تعبئتها  

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

تم تحديث الملف كما تريد وزيادة حبتين (مع الشرح الوافي للتعامل مع الكود و كيفية إيقافه  عن العمل)

protect non empty data with Pass word.rar

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

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.

×
×
  • اضف...

Important Information