انتقل إلى المحتوى الرئيسي

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

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

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

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


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

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

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

الوثيقة تسمح بالتاريخ 1

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

الوثيقة تسمح بالتاريخ 2

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

الوثيقة تسمح بالتاريخ 3

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

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

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

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

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

الوثيقة تسمح بالتاريخ 4


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

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

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

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

الوثيقة تسمح بالتاريخ 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

الوثيقة تسمح بالتاريخ 6

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

الوثيقة تسمح بالتاريخ 7

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

الميزات الشعبية: البحث عن التكرارات أو تمييزها أو تحديدها   |  حذف الصفوف الفارغة   |  دمج الأعمدة أو الخلايا دون فقدان البيانات   |   جولة بدون صيغة 
سوبر بحث: معايير متعددة VLookup    VLookup ذات القيمة المتعددة  |   VLookup عبر أوراق متعددة   |   بحث غامض ....
قائمة منسدلة متقدمة: إنشاء القائمة المنسدلة بسرعة   |  القائمة المنسدلة التابعة   |  قائمة منسدلة متعددة التحديد ....
مدير العمود: إضافة عدد محدد من الأعمدة  |  نقل الأعمدة  |  تبديل حالة رؤية الأعمدة المخفية  |  مقارنة النطاقات والأعمدة 
الميزات المميزة: التركيز على الشبكة   |  عرض تصميم   |   شريط الفورمولا الكبير    مدير المصنفات والأوراق   |  مكتبة الموارد (النص السيارات)   |  منتقي التاريخ   |  اجمع أوراق العمل   |  تشفير/فك تشفير الخلايا    إرسال رسائل البريد الإلكتروني عن طريق القائمة   |  سوبر تصفية   |   مرشح خاص (تصفية غامق / مائل / يتوسطه خط ...) ...
أفضل 15 مجموعة أدوات12 نص الأدوات (إضافة نص, إزالة الأحرف، ...)   |   +50 رسم الأنواع (مخطط جانت، ...)   |   40+ عملي الصيغ (احسب العمر على أساس تاريخ الميلاد، ...)   |   19 إدخال الأدوات (أدخل رمز الاستجابة السريعة, إدراج صورة من المسار، ...)   |   12 تحويل الأدوات (أرقام إلى كلمات, نتيجة تحويل عملة، ...)   |   7 دمج وتقسيم الأدوات (الجمع بين الصفوف المتقدمة, تقسيم الخلايا، ...)   |   ... و اكثر

عزز مهاراتك في Excel باستخدام Kutools for Excel، واختبر كفاءة لم يسبق لها مثيل. يقدم Kutools for Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية وتوفير الوقت.  انقر هنا للحصول على الميزة التي تحتاجها أكثر...

علامة تبويب kte 201905


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

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!

 

Comments (11)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Buenos dias

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

Muchas gracias
This comment was minimized by the moderator on the site
Hi I want to restrict the Date Format in DD.MM.YYYY in excel
May please suggest
This comment was minimized by the moderator on the site
Hello, Ramesh
To restrict the Date Format in DD.MM.YYYY, you can apply the below code:
Note: Please change the cell reference B2:B12 to your own list of cell.
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


Please have a try, hope it can help you!
This comment was minimized by the moderator on the site
Hello,Sorry for refreshing, the code works very nice, thank you. I just want to add one more check if its possible.Is it possible to check cell on the left if it contain certain value. Basically what I need is: if cell on the left contain N then that cell in range have to be input as a date.If cell on the left is Y then that cell needs to stay blank.
This comment was minimized by the moderator on the site
How can I oblige to enter a time? (hh:mm)Private Sub Worksheet_Change(ByVal Target As Range)
'updateby Extendoffice 20150530
Set w = ActiveSheet.Range("B2:B12")
For Each c In w
If c.Value <> "" And Not IsDate(c) Then <----------------------------And Not isTime(c) doesn't work!
c.ClearContents
MsgBox "Only a date format is permitted in this cell."
End If
Next c
End Sub
This comment was minimized by the moderator on the site
Hello, Roberto,

To only allow time format to be entered, you should apply the below code:



Private Sub Worksheet_Change(ByVal Target As Range)

'updateby Extendoffice

Dim xArr As Variant

Dim xF As Integer

Dim xB As Boolean

Dim xWRg, xCRg As Range

Set xWRg = ActiveSheet.Range("B2:B20")

For Each xCRg In xWRg

xArr = Split(xCRg.Value, ":")

xB = False

If UBound(xArr) <= 2 Then

For xF = LBound(xArr) To UBound(xArr)

If IsNumeric(xArr(xF)) Then

If xF = 0 Then

If (xArr(xF) > 0) And (xArr(xF) < 24) Then

Else

xB = True

GoTo BTime

End If

Else

If (xArr(xF) > 0) And (xArr(xF) < 60) Then

Else

xB = True

GoTo BTime

End If

End If

Else

xB = True

GoTo BTime

End If

Next

Else

MsgBox "Only a time format is permitted in this cell."

xCRg.ClearContents

End If

BTime:

If xB Then

MsgBox "Only a time format is permitted in this cell."

xCRg.ClearContents

End If

Next xCRg

End Sub



Please try it, thank you!
This comment was minimized by the moderator on the site
Thank you so much, for the VBA code to be applied to multiple columns can you please provide the formula?.. I tried but ended up getting a 405 error!
This comment was minimized by the moderator on the site
Hello, Kevin,
To make the code applied for multiple ranges, you just need to add the cell references into the code as below:

Private Sub Worksheet_Change(ByVal Target As Range)
Set w = ActiveSheet.Range("B2:B12,A1:A10,C5:C20")
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

Please try, hope it can help you!
This comment was minimized by the moderator on the site
Thanks a lot @skyyang, really appreciate your help :)
This comment was minimized by the moderator on the site
how to add a date validation for date format "DD-mmm-yyy" (15-Dec-2018) like this
This comment was minimized by the moderator on the site
which date format is this function allowed. It is not working for some dates
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations