سليم حاصبيا قام بنشر سبتمبر 24, 2018 قام بنشر سبتمبر 24, 2018 الكثيرون لحماية الخلايا يستعملون حماية الشيت (Protect Sheet) لكن في نطاق معين (تختاره بواسطة الكود) كيف يمكن ان نستعمل الخلية مرة واحدة فقط بحيث لا يمكن مسحها ولا التعديل عليها فيما بعد الا اذا تم توقيف الكود عن العمل كل ذلك بدون ( Protect Sheet) الكود Option Explicit Dim Old_value Dim New_value Private Sub Worksheet_SelectionChange(ByVal Target As Range) Old_value = Target.Cells(1, 1).Value End Sub '============================================== Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False On Error GoTo Final_Step If Intersect(Target, Range("A1:F12")) Is Nothing Then GoTo Final_Step New_value = Target.Value If Old_value = "" And Target.Cells.Count > 1 Then Application.Undo GoTo Final_Step End If If Old_value = "" Then Target.Value = New_value Else Application.Undo End If Final_Step: Application.EnableEvents = True End Sub الملف تحت التصّرف Protect_without Protect.xlsm 4
Ali Mohamed Ali قام بنشر سبتمبر 24, 2018 قام بنشر سبتمبر 24, 2018 أحسنت استاذ سليم بارك الله فيك وجعل الله هذا العمل فى ميزان حسناتك وجعلك دائما زخرا لنا وافاض الله عليك من كرمه وزادك من علمه وادامك الله لنا دائما عونا فى هذا المنتدى الكريم ولا تحرمنا دائما من كرمك وطلاتك علينا جزاك الله كل خير 1
علي بطيخ سالم قام بنشر سبتمبر 24, 2018 قام بنشر سبتمبر 24, 2018 ممتاز استاذنا لكن لو وضعت زر لتصفير الخلايا يكون أفضل ... فقد نحتاج إلى تصفير الشيت بعد انتهاء مرحلة معينة وإعادته لطبيعته للعمل به من جديد فهل ذلك ممكن وأشكرك على مجهودك الطيب جعله الله في ميزان حسناتك 1
Hamdi Edlbi-khalf قام بنشر سبتمبر 26, 2018 قام بنشر سبتمبر 26, 2018 أغبطك على معرفتك ... بارك الله بك ملف مميز و لكن لدى التجربة تبين أن إعادة الكتابة أو مسح محتويات الخلية لمرتين يسمح بالتعديل .
سليم حاصبيا قام بنشر سبتمبر 26, 2018 الكاتب قام بنشر سبتمبر 26, 2018 2 ساعات مضت, Khalf said: أغبطك على معرفتك ... بارك الله بك ملف مميز و لكن لدى التجربة تبين أن إعادة الكتابة أو مسح محتويات الخلية لمرتين يسمح بالتعديل . تم التعديل على الكود لمنع هذا الشي Option Explicit Dim Old_value Dim New_value Private Sub Worksheet_SelectionChange(ByVal Target As Range) Old_value = Target.Cells(1, 1).Value End Sub '============================================== Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False On Error GoTo Final_Step If Intersect(Target, Range("A1:F12")) Is Nothing Then GoTo Final_Step New_value = Target.Value If Target.Cells.Count > 1 Then Application.Undo GoTo Final_Step End If If Old_value = "" And Target.Cells.Count > 1 Then Application.Undo GoTo Final_Step End If If Old_value = "" Then Target.Value = New_value Else Application.Undo End If Final_Step: Application.EnableEvents = True End Sub 1
المتدرب قام بنشر سبتمبر 27, 2018 قام بنشر سبتمبر 27, 2018 السلام عليكم عند إعادة الكتابة مرتين يبدل المحتوى مع الشكر
Hamdi Edlbi-khalf قام بنشر سبتمبر 28, 2018 قام بنشر سبتمبر 28, 2018 (معدل) لا تزال المشكلة قائمة بالرغم من استبدال الأمر في الملف . تم تعديل سبتمبر 28, 2018 بواسطه Khalf
مازن امام قام بنشر سبتمبر 29, 2018 قام بنشر سبتمبر 29, 2018 يعطيك العافية على مجهودك الرائع ولكن وجدت ثغرة اثناء تجربة الملف وهي من الممكن حذف محتويات الخلية بالطرية التالية: 1 تحديد الخلية 2 الضغط على مفتاح Backspace 3 ثم الضغط على Delete 4 الضغط على Enter 5 ثم الضغط على Delete مرة اخرى Protect_without Protect.xlsm
عاطف عبد العليم محمد قام بنشر أكتوبر 3, 2018 قام بنشر أكتوبر 3, 2018 السلام عليكم ممكن استاذ سليم نجعل التغيير مفتوح لخلايا محددة والباقي كما موجود لا يسمح بالتغيير ؟
abo_moaz قام بنشر أكتوبر 8, 2018 قام بنشر أكتوبر 8, 2018 جزاك الله خيرا . بس في حاله الكتابه مره لايستجيب ولكن اذا حاولات اخري يستجيب لنفس الخليه في المره الثانيه
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.