Note: The other languages of the website are Google-translated. Back to English

كيفية حماية الخلايا بناءً على التاريخ في إكسيل؟

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

حماية المستند حسب التاريخ 1

قم بحماية جميع الصفوف باستثناء صف تاريخ اليوم برمز VBA

قم بحماية جميع الصفوف التي مر التاريخ بها برمز VBA


السهم الأزرق الحق فقاعة قم بحماية جميع الصفوف باستثناء صف تاريخ اليوم برمز VBA

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

1. انقر بزر الماوس الأيمن فوق علامة تبويب الورقة التي تريد حماية الخلايا بناءً على التاريخ ، ثم اختر عرض الرمز من قائمة السياق ، في النافذة المنبثقة ميكروسوفت فيسوال باسيك للتطبيقات نافذة ، يرجى نسخ ولصق الكود التالي في الوحدة النمطية الفارغة:

كود فبا: حماية كل الصفوف باستثناء صف تاريخ اليوم:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby Extendoffice 20161025
    If Range("E" & Selection.Row).Value <> Date Then
        ActiveSheet.Protect Password:="111111"
        MsgBox "Only today's date row can be edited!", vbInformation, "Kutools for Excel"
    ElseIf Range("E" & Selection.Row).Value = Date Then
        ActiveSheet.Unprotect Password:="111111"
        ActiveSheet.EnableSelection = xlNoRestrictions
    End If
End Sub

حماية المستند حسب التاريخ 2

ملاحظة: في الكود أعلاه الحرف E هو رأس العمود حيث يقع التاريخ ، "111111"هي كلمة المرور لحماية هذه الورقة. يمكنك تغييرها حسب حاجتك.

2. ثم احفظ وأغلق نافذة الكود هذه.

(1.) إذا نقرت فوق خلايا أخرى خارج صف التاريخ اليوم ، فسيظهر مربع موجه لتذكيرك بأنه لا يمكن تحرير الخلية ، انظر لقطة الشاشة:

حماية المستند حسب التاريخ 3

(2.) إذا قمت بالنقر فوق وتحرير الصف الذي يساوي تاريخ اليوم ، فسيتم تعديله بنجاح ، انظر الصورة:

حماية المستند حسب التاريخ 4


السهم الأزرق الحق فقاعة قم بحماية جميع الصفوف التي مر التاريخ بها برمز VBA

إذا كنت بحاجة إلى حماية جميع الصفوف التي انقضى التاريخ ، فلا تسمح إلا بتعديل صفوف التاريخ لليوم والمستقبل ، فالرجاء تطبيق رمز فبا التالي:

1. انقر بزر الماوس الأيمن فوق علامة تبويب الورقة التي تريد حماية الخلايا بناءً على التاريخ ، ثم اختر عرض الرمز من قائمة السياق ، في النافذة المنبثقة ميكروسوفت فيسوال باسيك للتطبيقات نافذة ، يرجى نسخ ولصق الكود التالي في الوحدة النمطية الفارغة:

كود فبا: انقضى تاريخ حماية جميع الصفوف:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Updateby Extendoffice 20161025
  Dim xRow As Long
  xRow = 2
  ThisWorkbook.ActiveSheet.Unprotect Password:="111111"
  ThisWorkbook.ActiveSheet.Cells.Locked = False
  Do Until IsEmpty(Cells(xRow, 5))
    If Cells(xRow, 5) < Date Then
      Rows(xRow).Locked = True
    End If
    xRow = xRow + 1
  Loop
  ThisWorkbook.ActiveSheet.Protect Password:="111111"
End Sub

حماية المستند حسب التاريخ 5

ملاحظة: في الكود أعلاه ، الرقم 5 هو رقم العمود حيث يقع التاريخ ، "111111"هي كلمة المرور لحماية هذه الورقة. يمكنك تغييرها حسب حاجتك.

3. ثم احفظ وأغلق نافذة الكود هذه.

(1.) إذا قمت بالنقر فوق تاريخ انتهاء الخلايا ، فسيظهر مربع موجه لتذكيرك بأنه لا يمكن تحرير الخلية ، انظر الصورة:

حماية المستند حسب التاريخ 6

(2.) إذا قمت بالنقر فوق خلية الصفوف لمحاولة تغيير القيم في تاريخ اليوم أو التاريخ المستقبلي ، فسيتم تعديلها بنجاح ، انظر الصورة:

حماية المستند حسب التاريخ 7


أفضل أدوات إنتاجية المكتب

Kutools for Excel يحل معظم مشاكلك ويزيد إنتاجيتك بنسبة 80٪

  • إعادة استخدام: أدخل بسرعة الصيغ المعقدة والرسوم البيانية وأي شيء استخدمته من قبل ؛ تشفير الخلايا مع كلمة السر إنشاء قائمة بريدية وإرسال رسائل البريد الإلكتروني ...
  • سوبر فورميولا بار (بسهولة تحرير أسطر متعددة من النص والصيغة) ؛ تخطيط القراءة (قراءة وتحرير أعداد كبيرة من الخلايا بسهولة) ؛ لصق في النطاق المصفى
  • دمج الخلايا / الصفوف / الأعمدة دون فقدان البيانات ؛ تقسيم محتوى الخلايا ؛ ادمج الصفوف / الأعمدة المكررة... منع تكرار الخلايا؛ قارن النطاقات
  • حدد مكرر أو فريد صفوف حدد صفوف فارغة (جميع الخلايا فارغة) ؛ البحث الفائق والبحث الغامض في العديد من المصنفات. تحديد عشوائي ...
  • نسخة طبق الأصل خلايا متعددة بدون تغيير مرجع الصيغة ؛ إنشاء المراجع تلقائيًا إلى أوراق متعددة أدخل الرموز النقطية، مربعات الاختيار والمزيد ...
  • استخراج النص، إضافة نص ، إزالة حسب الموضع ، إزالة الفضاء؛ إنشاء وطباعة المجاميع الفرعية لترحيل الصفحات ؛ التحويل بين محتوى الخلايا والتعليقات
  • سوبر تصفية (حفظ وتطبيق مخططات التصفية على أوراق أخرى) ؛ فرز متقدم حسب الشهر / الأسبوع / اليوم ، التكرار والمزيد ؛ مرشح خاص بواسطة bold، italic ...
  • اجمع بين المصنفات وأوراق العمل؛ دمج الجداول على أساس الأعمدة الرئيسية ؛ تقسيم البيانات إلى أوراق متعددة; تحويل دفعة xls و xlsx و PDF
  • أكثر من 300 ميزة قوية. يدعم Office / Excel 2007-2021 و 365. يدعم جميع اللغات. سهولة النشر في مؤسستك أو مؤسستك. الميزات الكاملة نسخة تجريبية مجانية لمدة 30 يومًا. ضمان استرداد الأموال لمدة 60 يومًا.
علامة تبويب kte 201905

يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
أوفيسيتاب القاع
فرز التعليقات حسب
التعليقات (30)
لا يوجد تقييم. كن أول من يقيم!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
الثغرة: يمكن لأي شخص آخر رؤية كلمة المرور باستخدام خيار "عرض الرمز".
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لا تعمل لأن كل الخلايا تعرض الرسالة ولكنها قابلة للتحرير
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، هل من الممكن قفل الأعمدة حسب التاريخ مباشرة فوق الأعمدة؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
تغيير ورقة العمل الفرعية الخاصة (ByVal Target As Range)

'الاشتراك في http://youtube.com/excel10tutorial

دعم القناة من خلال التبرع على http://patreon.com/excel10tutorial

خافت العمود كمدى

قم بتعيين اسم الورقة الصحيح هنا:

باستخدام ThisWorkbook.Sheets ("AGOSTO-22")

.إلغاء حماية "ABCDE"

لكل عمود في .UsedRange.Columns

col.EntireColumn.Locked = col.Range ("A1"). القيمة <> التاريخ

العمود التالي

. حماية "ABCDE"

.EnableSelection = xlNoRestrictions

انتهت ب

نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، هل من الممكن قفل خلايا معينة بناءً على التاريخ الموجود فوقها مباشرةً في عمود؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا لوسيس ،
هل يمكنك تحديد مشكلتك بشكل أكثر تحديدًا؟ أو يمكنك إرفاق لقطة شاشة على أنها مشكلتك.
شكرا!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا سكاييانغ

نعم هنا لقطة شاشة. أتمنى أن يساعدك هذا.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
ها هو.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا لوسيس ،
هل تقصد قفل الأعمدة التي مضى عليها تاريخ ، ويمكن فقط تعديل أعمدة اليوم والأيام المستقبلية؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
صيح! كيف سأفعل ذلك؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا لويس ،
ماذا عن خلية التاريخ في A1؟ هل تم إدخالها يدويًا أم تم إدخالها بصيغة = now ()؟ إذا كانت خلية صيغة ، فسيتم تغيير الأعمدة المقفلة مع تغييرات التاريخ.
نتطلع إلى ردك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا Skyyangg

نعم ، تحتوي الخلية A1 على الصيغة = now ().

شكرا!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا.....


أنا أستخدم رمز حماية جميع الصفوف باستثناء صف تاريخ اليوم ........



تغيير ورقة العمل الفرعية الخاصة (الهدف حسب القيمة كنطاق)
'تحديث بواسطة Extendoffice 20161025
إذا كان النطاق ("A" & Selection.Row) .Value <> التاريخ ثم
كلمة مرور ActiveSheet.Protect: = "111111"
MsgBox "يمكن تحرير صف تاريخ اليوم فقط!" ، vbInformation ، "Kutools for Excel"
النطاق ElseIf ("E" & Selection.Row) .Value = التاريخ بعد ذلك
ActiveSheet.Unprotect Password: = "111111"
ActiveSheet.EnableSelection = xlNoRestrictions
إنهاء حالة
نهاية الفرعية


بعد أن أقوم بحفظ i والنقر فوق الخلية ، أحصل على رسالة يمكن تحرير صف تاريخ اليوم فقط ... ولكن إذا نقرت مرتين على الخلية ، يمكنني التعديل ... الرجاء المساعدة
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هذا يعمل بشكل رائع. ولكن كيف يمكنني تبديله لإلغاء قفل عمود استنادًا إلى التواريخ الموجودة في الصف 3؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
بصفتك شخصًا جديدًا نسبيًا على VBA ، هل تمانع في شرح سبب xRow = 2 في السطر 4؟



شكر
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لأنه في الصف لا. 1 لديك رأس
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،

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

هل يمكنك الإرشاد في الكود الخاص بي إلى أين يجب إجراء التغييرات وفقًا لملف excel الخاص بي بحيث يمكن تحرير الخلايا التي تحتوي على اليوم فقط والتاريخ المستقبلي ؟؟؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا كاران
نظرًا لوجود خلايا مدمجة في الجدول الخاص بك ، لا يمكن تطبيق الكود أعلاه بشكل صحيح في جدول الخلايا المدمجة.
إذا كان لديك أي أفكار جيدة أخرى ، يرجى التعليق هنا. شكرًا لك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، لقد حاولت أن أفعل الشيء نفسه ولكن لحماية جميع الأعمدة باستثناء عمود تاريخ اليوم برمز VBA عن طريق استبدال "Selection.Row" بـ "Selection.Columns" و "E" بـ "5" (رقم الصف حيث توجد التواريخ) ، ولكن أستمر في تلقي الخطأ 1004!

أي مساعدة من فضلك؟

شكراً لك
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، لقد حاولت أن أفعل الشيء نفسه ولكن لحماية جميع الأعمدة باستثناء عمود تاريخ اليوم برمز VBA عن طريق استبدال "Selection.Row" بـ "Selection.Columns" و "E" بـ "5" (رقم الصف حيث توجد التواريخ) ، ولكن أستمر في تلقي الخطأ 1004!

أي مساعدة من فضلك؟

شكراً لك
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،
لتطبيق هذا الرمز على الأعمدة التي تحتاجها ، يرجى استخدام رمز فبا التالي: (ملاحظة: في الكود ، 5 هو رقم الصف الذي يحتوي على التاريخ ، يرجى تغييره حسب حاجتك.)

تغيير ورقة العمل الفرعية الخاصة (الهدف حسب القيمة كنطاق)
خافت xRg كمدى
قم بتعيين xRg = Target.Worksheet.Cells (5 ، Target.Column)
إذا كان xRg <> التاريخ ثم
كلمة مرور ActiveSheet.Protect: = "111111"
MsgBox "يمكن تحرير صف تاريخ اليوم فقط!" ، vbInformation ، "Kutools for Excel"
ElseIf xRg.Value = التاريخ بعد ذلك
ActiveSheet.Unprotect Password: = "111111"
ActiveSheet.EnableSelection = xlNoRestrictions
إنهاء حالة
نهاية الفرعية

من فضلك حاول ، آمل أن يساعدك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرًا لك! معذرةً ، لم أحصل على ردك حتى الآن ، قد يكون هناك مشكلة في بريدي الإلكتروني.

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

أحاول توسيع هذا لحماية الأعمدة التي لا تتضمن هذا الشهر الحالي و / وهذا الأسبوع الحالي. حاولت استبدال "التاريخ" بـ "الشهر" أو "الأسبوع" ، لكنني لم أفلح.

لقد أرفقت نموذجًا لورقة الأسابيع حيث لا يمكن للمستخدم التعديل أو الكتابة في أعمدة غير هذا الأسبوع.

أي نصيحة في ذلك؟ أم يجب أن أستخدم التواريخ الفعلية لتعكس يومًا في الشهر؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرًا على مساعدتك ، شكرًا جزيلاً يا صديقي ، إنها مساعدة رائعة. وحل توتري.
تكون آمنة
تحياتي روهيت خانا
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، أواجه مشكلة واحدة ، بمجرد إغلاق الملف وإعادة فتحه مرة أخرى في نفس التاريخ ، لا يعمل الرمز. الثابتة والمتنقلة مساعدة أنا عالق
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا روهيت ،
للاحتفاظ بالرمز ، يجب عليك حفظ المصنف الخاص بك بتنسيق Excel Macro-Enabled Workbook ، يرجى المحاولة ، شكرًا لك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، لقد فعلت ذلك ولكن عندما أضغط على رسالة خلوية تظهر أنه لا يمكن تحريرها ولكن عندما أضغط على لوحة المفاتيح ، لا يزال بإمكاني الكتابة في الخلية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، أود حماية الأيام القادمة والسماح بتعديل الأيام الحالية والماضية. كيف يمكنني فعل ذلك؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ميغيل ، لحماية الأيام المقبلة ، يرجى تطبيق الكود أدناه: تغيير ورقة العمل الفرعية الخاصة (ByVal Target As Excel.Range)
'تحديث بواسطة Extendoffice
خافت xRow طويل
xRow = 2
ThisWorkbook.ActiveSheet.Unprotect Password: = "111111"
ThisWorkbook.ActiveSheet.Cells.Locked = خطأ
عمل حتى يصبح فارغًا (خلايا (xRow ، 5))
إذا كانت الخلايا (xRow ، 5)> التاريخ ثم
صفوف (xRow). مغلق = صحيح
إنهاء حالة
xRow = xRow + 1
أنشوطة
كلمة مرور ThisWorkbook.ActiveSheet.Protect: = "111111"
End Sub يرجى المحاولة ، آمل أن يساعدك!
لا توجد تعليقات منشورة هنا حتى الآن
اترك تعليقاتك
النشر كضيف
×
قيم المنشور:
0   الشخصيات
المواقع المقترحة

تواصل معنا

حقوق التأليف والنشر © 2009 - شبكة الاتصالات العالمية.extendoffice.com. | كل الحقوق محفوظة. مشغل بواسطة ExtendOffice. | | خريطة الموقع
Microsoft وشعار Office هما علامتان تجاريتان أو علامتان تجاريتان مسجلتان لشركة Microsoft Corporation في الولايات المتحدة و / أو دول أخرى.
محمي بواسطة Sectigo SSL