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

كيفية السماح بتنسيق التاريخ فقط في خلايا معينة؟

كيف يمكنك تقييد قائمة الخلايا للسماح فقط بإدخال تنسيق التاريخ في ورقة عمل Excel؟ في هذا المقال سأتحدث عن بعض الحيل الشيقة للتعامل مع هذه الوظيفة.

السماح بتنسيق التاريخ فقط في خلايا محددة مع وظيفة التحقق من صحة البيانات

السماح بتنسيق التاريخ فقط في خلايا محددة برمز VBA


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

في Excel ، فإن ملف التحقق من صحة البيانات هي وظيفة قوية يمكن أن تساعدك في إنشاء قائمة منسدلة ، لمنع الإدخالات المكررة ، إلخ. كما يمكنها مساعدتك في منع إدخال تنسيق بيانات آخر ولكن فقط تنسيق التاريخ في خلايا معينة. يرجى اتباع الخطوات التالية:

1. انقر البيانات > التحقق من صحة البيانات > التحقق من صحة البيانات، انظر لقطة الشاشة:

doc allow date 1

2. في التحقق من صحة البيانات مربع الحوار، انقر فوق الإعدادات علامة التبويب ، ثم اختر عرف من السماح القائمة المنسدلة ، ثم أدخل هذه الصيغة: = AND (ISNUMBER (B2)، LEFT (CELL ("format"، B2)، 1) = "D") في المعادلة مربع النص ، انظر لقطة الشاشة:

doc allow date 2

ملاحظة: في الصيغة أعلاه ، B2 هي الخلية الأولى في العمود التي تريد تقييد تنسيق البيانات.

doc allow date 3

3. ثم استمر في النقر تنبيه خطأ علامة التبويب في مربع الحوار ، يرجى إجراء العمليات التالية:

(1.) تحقق إظهار تنبيه خطأ بعد إدخال بيانات غير صالحة الخيار.

(2.) تحت ستايل قائمة منسدلة ، يرجى التحديد قلة النوم الخيار.

(3.) اكتب ملف اسم الخدمة و رسالة خطأ التي تريد عرضها في مربع المطالبة.

4. بعد الانتهاء من الإعدادات ، انقر فوق OK ، والآن ، عند إدخال البيانات التي ليست بتنسيق التاريخ الحقيقي ، سيظهر مربع موجه لتذكيرك كما هو موضح في لقطة الشاشة التالية:

doc allow date 4


السهم الأزرق الحق فقاعة السماح بتنسيق التاريخ فقط في خلايا محددة برمز VBA

الطريقة الثانية ، سأقدم لك رمز VBA.

1. قم بتنشيط ورقة العمل التي تريد استخدامها.

2. ثم انقر بزر الماوس الأيمن فوق علامة تبويب الورقة ، وحدد عرض الرمز من قائمة السياق ، انظر لقطة الشاشة:

doc allow date 5

3. في العرض ميكروسوفت فيسوال باسيك للتطبيقات نافذة ، انسخ والصق الكود أدناه في ملف وحدة، انظر لقطة الشاشة:

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

Private Sub Worksheet_Change(ByVal Target As Range)
'updateby Extendoffice
Set w = ActiveSheet.Range("B2:B12")
For Each c In w
If c.Value <> "" And Not IsDate(c) Then
c.ClearContents
MsgBox "Only a date format is permitted in this cell."
End If
Next c
End Sub

doc allow date 6

4. ثم احفظ الإعلان ، أغلق الكود ، الآن ، عند إدخال القيمة التي ليست تنسيق التاريخ في النطاق B2: B12 ، سيظهر مربع مطالبة لتذكيرك ، وسيتم مسح قيمة الخلية في نفس الوقت ، انظر لقطة الشاشة:

doc allow date 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٪ ، ويقلل مئات النقرات بالماوس كل يوم!
أوفيسيتاب القاع

 

فرز التعليقات حسب
التعليقات (11)
لا يوجد تقييم. كن أول من يقيم!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
تنسيق التاريخ الذي تسمح هذه الوظيفة. انها لا تعمل لبعض التواريخ
تم تصغير هذا التعليق بواسطة المشرف على الموقع
كيفية إضافة التحقق من صحة التاريخ لتنسيق التاريخ "DD-mmm-yyy" (15-Dec-2018) مثل هذا
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرًا جزيلاً لك ، لتطبيق رمز VBA على أعمدة متعددة ، هل يمكنك من فضلك تقديم الصيغة؟ .. حاولت ولكن انتهى بي الأمر بالحصول على خطأ 405!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا كيفن،
لجعل الكود مطبقًا على نطاقات متعددة ، تحتاج فقط إلى إضافة مراجع الخلية في الكود على النحو التالي:

ورقة عمل فرعية خاصة تغيير (هدف ByVal كنطاق)
قم بتعيين w = ActiveSheet.Range ("B2: B12، A1: A10، C5: C20")
لكل ج في ث
إذا كانت c.Value <> "" And Not IsDate (ج) إذن
ج- المحتويات الواضحة
MsgBox "يسمح فقط بتنسيق التاريخ في هذه الخلية."
إنهاء حالة
التالي ج
نهاية الفرعية

من فضلك حاول ، آمل أن يساعدك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرًا جزيلاًskyyang ، حقًا أقدر مساعدتك :)
تم تصغير هذا التعليق بواسطة المشرف على الموقع
كيف ألتزم بإدخال وقت؟ (hh: mm) Private Sub Worksheet_Change (ByVal Target As Range)
'تحديث بواسطة Extendoffice 20150530
تعيين w = ActiveSheet.Range ("B2: B12")
لكل ج في ث
إذا كانت c.Value <> "" And Not IsDate (c) ثم <---------------------------- وليس الوقت (ج) لا يعمل!
ج- المحتويات الواضحة
MsgBox "يسمح فقط بتنسيق التاريخ في هذه الخلية."
إنهاء حالة
التالي ج
نهاية الفرعية
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا روبرتو

للسماح بإدخال تنسيق الوقت فقط ، يجب عليك تطبيق الكود أدناه:



ورقة عمل فرعية خاصة تغيير (هدف ByVal كنطاق)

'تحديث بواسطة Extendoffice

خافت xArr كمتغير

خافت xF كعدد صحيح

خافت xB كما منطقية

خافت xWRg ، xCRg كنطاق

تعيين xWRg = ActiveSheet.Range ("B2: B20")

لكل xCRg في xWRg

xArr = انقسام (xCRg.Value، ":")

xB = خطأ

إذا كان UBound (xArr) <= 2 ثم

من أجل xF = LBound (xArr) إلى UBound (xArr)

If IsNumeric (xArr (xF)) ثم

إذا كانت xF = 0 ثم

إذا (xArr (xF)> 0) و (xArr (xF) <24) ثم

آخر

xB = صحيح

GoTo BTime

إنهاء حالة

آخر

إذا (xArr (xF)> 0) و (xArr (xF) <60) ثم

آخر

xB = صحيح

GoTo BTime

إنهاء حالة

إنهاء حالة

آخر

xB = صحيح

GoTo BTime

إنهاء حالة

التالى

آخر

MsgBox "يسمح فقط بتنسيق الوقت في هذه الخلية."

xCRg.ClearContents

إنهاء حالة

BTime:

إذا xB ثم

MsgBox "يسمح فقط بتنسيق الوقت في هذه الخلية."

xCRg.ClearContents

إنهاء حالة

التالي xCRg

نهاية الفرعية



من فضلك جربها ، شكرا لك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، آسف للتحديث ، الكود يعمل بشكل جيد جدًا ، شكرًا لك. أريد فقط إضافة فحص آخر إذا كان ذلك ممكنًا. هل من الممكن التحقق من الخلية الموجودة على اليسار إذا كانت تحتوي على قيمة معينة. ما أحتاجه في الأساس هو: إذا كانت الخلية الموجودة على اليسار تحتوي على N ، فيجب إدخال تلك الخلية الموجودة في النطاق كتاريخ ، وإذا كانت الخلية الموجودة على اليسار هي Y ، فيجب أن تظل هذه الخلية فارغة.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، أريد تقييد تنسيق التاريخ في DD.MM.YYYY في Excel
قد تقترح من فضلك
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا راميش
لتقييد تنسيق التاريخ في DD.MM.YYYY ، يمكنك تطبيق الكود أدناه:
ملاحظة: الرجاء تغيير مرجع الخلية B2: B12 لقائمة الخلايا الخاصة بك.
Private Sub Worksheet_Change(ByVal Target As Range)
'updateby Extendoffice
    On Error Resume Next
    
    Dim Bool As Boolean
    Dim Rg As Range
    Dim xRegEx As Object
    
    Bool = False

    Set Rg = Application.Intersect(Target, ActiveSheet.Range("B2:B12"))
    If Rg Is Nothing Then Exit Sub

    Set xRegEx = CreateObject("VBSCRIPT.REGEXP")
    With xRegEx
        .Pattern = "^[0-3]\d\.[0-1][0-2]\.\d{4}$"
        .Global = True
        .IgnoreCase = True
    End With
    
    Application.EnableEvents = False
    For Each c In Target
        If c.Value <> "" Then
            If Not xRegEx.test(c.Text) Then
                c.ClearContents
                Bool = True
            End If
        End If
    Next c
    Application.EnableEvents = True
    If Bool Then
        MsgBox "Error date format."
    End If
End Sub


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

Estoy utilizando la forma en la validación de datos pero no me deja ingresar ningún formato de fecha، me puede explicar por favor

شكرا جزيلا
لا توجد تعليقات منشورة هنا حتى الآن
اترك تعليقاتك
النشر كضيف
×
قيم المنشور:
0   الشخصيات
المواقع المقترحة

تواصل معنا

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