اذهب الي المحتوي
أوفيسنا

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

قام بنشر (معدل)

السلام عليكم ورحمة الله وبركاته

مواجهاني مشكلة في كيفية عمل

Data Validation

من خلال الفورم

وإذا كان هنالك أكواد لتحديد قيمة معنية وإجبار المستخدم إدخال عدد معين من الارقام مثلا 10 ارقام فقط بحيث لا تقبل الخلية أقل أو أكثر من 10 أرقام

أرجو إفادتي مما علمكم الله

..

ولكم مني كل تقدير

CAI-KRT 3-2016.rar

تم تعديل بواسطه رافت الهجان
قام بنشر

مشكور أخي الفاضل توكل .. ولكني أريد هذه العملية من خلال الــ

VBA

من خلال الفورم عن طريق كود

..

ولك مني خالص الود والتقدير

قام بنشر

جرب هذا الماكرو

Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Columns(4)) Is Nothing And IsNumeric(Target) _
             And Target.Row > 1 Then
                             Application.EnableEvents = False: Application.ScreenUpdating = False
              With Columns("d").Validation
                 .Delete
                 .Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
                      xlBetween, Formula1:="=and(isnumber($d1),len($d1)=10)"
              End With
         End If
                             Application.EnableEvents = True: Application.ScreenUpdating = True
   End Sub

 

قام بنشر

اعتذر منك أخي سليم .. بس رجاء إذا أضفت الكود في ملف أكسل وأرفقته لي تكون فعلت فيني معروف

لان الكود ما اشتغل معاي وقد أكون ما نسخته بالصورة المطلوبة

..

ولك خالص التحايا

قام بنشر
13 ساعات مضت, رافت الهجان said:

اعتذر منك أخي سليم .. بس رجاء إذا أضفت الكود في ملف أكسل وأرفقته لي تكون فعلت فيني معروف

لان الكود ما اشتغل معاي وقد أكون ما نسخته بالصورة المطلوبة

..

ولك خالص التحايا

جرب هذا الماكرو

Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Columns(4)) Is Nothing And IsNumeric(Target) _
             And Target.Row > 1 Then
                             Application.EnableEvents = False: Application.ScreenUpdating = False
              With Columns("d").Validation
                 .Delete
                 .Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
                      xlBetween, Formula1:="=and(isnumber($d1),len($d1)=10)"
              End With
         End If
                             Application.EnableEvents = True: Application.ScreenUpdating = True
   End Sub

تفضل الكود مرفق مع الملف

الكود لا يسمح بادخال اية قيمة في العامود D  الا اذا كانت رقماً مؤلفاً من 10 خانات

CAI-KRT 3-2016 macro.rar

  • Like 1
قام بنشر

أخي الكريم رأفت الهجان

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

عذراً لا أرى الموضوع مقبول من وجهة نظري على الإطلاق ... حيث يمثل الكود في حدث تغير ورقة العمل عبء بدون داعي ..

تقبل تحياتي

قام بنشر (معدل)

شكراً لك أخي الكريم سليم حاصبيا على هذه الإفادة .. وجعلها الله في ميزان حسناتك

 

جزيت خيراً أخي الكريم ياسر خليل .. فقط إحتجت لمعرفة ذلك لأن طبيعة عملي (موظف إحصاء بشركة طيران سودانية) تحتم علي عدم الخطأ في إدخال أرقام التذاكر بحيث لا تكون ناقصة أو زائدة لكي لا تتسبب مشاكل .. لذلك محتاج كود بحيث أذا كان رقم التذكرة ناقص أو زائد ما يرحل معاي للشيت.
..
هذا نموذج لملف الرحل لهذا الشهر للإطلاع والتطوير

..

مع خالص تحياتي

الباسويرد 72328

أبريل 2016.rar

تم تعديل بواسطه رافت الهجان
  • Like 1

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.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information