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

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

قام بنشر

السلام عليكم

ورقة محمية بكلمة سر

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

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

لكن لا يسمح لأحد بفعل ذلك بعد ربع ساعة حتى لا يحصل تزوير فلا يستطيع احد تغيير البيانات الا بازالة الحماية عن الورقة عن طريق الشخص المسئول

اظن المسألة تحتاج timer يتم تفعيله بعد sheetchange او afterupdate او شيء من هذا القبيل

هل احد الأخوة الخبراء لديه فكرة؟

قام بنشر

ممتاز اخي الكريم تقريبا هذا هو المطلوب . ما شاء الله خبير فعلا

لكني مع الأسف لا اريد خلية واحدة بل نطاق معين (مصفوفة)

c7 ابدلت بها range a1:b10 لكن مع الأسف لم يعمل معي

المطلوب ان الخلية التي كتبت فيها للتو تقفل locked=true وليس كل النطاق

حاولت استخدام activecell.locked=true لكنه يقفل الخلية المجاورة لأنها هي التي تصبح active بعد ضغط enter

لا داعي لقفل الشيت كله في كل مرة نغير البيانات . يكفي قفله مرة واحدة عند بداية البرنامج مثلا في الحدث worksheet.activate مع ترك النطاق المعين a1:b10 بدون حماية ثم يتم قفل كل خلية من خلايا هذا النطاق نكتب فيها على حدى وليس كل النطاق

حبذا لو حاولتَ تعديل الكود اخي الكريم اذا كنت تملك وقتا لذلك

سؤال آخر اذا سمحت : هل يمكن الإستعاضة عن العبارة التي تخبرنا ان الخلية مقفلة بعبارة عربية user defined message مثل: "اخي المستخدم لا يمكنك تعديل الخلية بعد مرور ربع ساعة على ادخالك البيانات فيها. راجع مدير البرنامج رجاءا لتصحيح الخطأ"

ارجو الا اكون قد اثقلت عليك

لاحظ محاولتي الفاشلة في الملف المرفق

قفل خلية بعد ربع ساعة.rar

قام بنشر

السلام عليكم وكل عام وانتم مغفور لكم

اخي عبد الله المجرب زادك الله تجربة وخبرة

طبقت فكرتك فيبدو انها تعمل في اول الأمر فعندما تكتب في الخلية وتضغط انتر وتنتظر 2 ثانية تجد الخلية المعنية تقفل فعلا

لكن هذا لا ينفع ان جعلنا الوقت ربع ساعة لأنك خلال هذه الربع ساعة ستدخل العديد من البيانات في خلايا كثيرة وكل خلية منهم تستدعي الإجراء protect فبعد نهاية ربع الساعة لأول خلية استدعت الإجراء فان الخلية المشار اليها بـ ActiveCell.Offset(-1, 0).Locked هي التي ستقفل وهي ليست الخلية التي استدعت الإجراء ابتداءا وهذه الخلية التي ستقفل هي مجرد خلية مسكينة تصادف انها كانت مجاورة للخلية الحالية ولم يمض عليها ربع ساعة وربما ليس فيها بيانات اصلا

حاولت ان احل المشكلة باستخدام parameters حيث ترسل الخلية المراد قفلها عنوانها الى اجراء ProtectionTime والذي يقوم بدوره بارسالها بعد ربع ساعة الى اجراء Protect ليقفل الخلية التي استدعت الإجراء

لكن مع ذلك لا يزال البرنامج لا يعمل

انظر محاولتي في المرفق رجاءا وجزاك الله خيرا

قفل خلية بعد ربع ساعة.rar

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