اكسل vba تحديد نوع البيانات المدخلة فىTEXTBOX و الحد الأقصى لمحتويات الخلية UserForm
بسم الله الرحمن الرحيم
اهلا بحضراتكم متابعى موقع ومدونة عالم الاوفيس
سؤال ورد الينا من احد الاصدقاء المتابعين
كيف اقول باجبار المستخدم على ادخال عدد معين من الارقام وليكن 11 رقم فقط لاغير فى textbox؟
وللاجابة على هذا السؤال سنقوم بتنفيذ كود اكسل vba
ليقوم بهذة المهمة بالنيابة عنكم
اذا كيف نقوم بذلك .
فى البداية لابد لنا من ايجاد دالة معينة تقوم بحساب عدد الارقام المدخلة فى التكست بوكس حتى يتم عمل المعادلة اللازمة لمنع المستخدم من ادخال ارقام اكثر من العدد المطلوب (11 رقم ) وهنا سوف نستخدم الدالة (LEN)
وسيكون شكل الكود كالاتى
بسم الله الرحمن الرحيم
اهلا بحضراتكم متابعى موقع ومدونة عالم الاوفيس
سؤال ورد الينا من احد الاصدقاء المتابعين
كيف اقول باجبار المستخدم على ادخال عدد معين من الارقام وليكن 11 رقم فقط لاغير فى textbox؟
وللاجابة على هذا السؤال سنقوم بتنفيذ كود اكسل vba
ليقوم بهذة المهمة بالنيابة عنكم
اذا كيف نقوم بذلك .
فى البداية لابد لنا من ايجاد دالة معينة تقوم بحساب عدد الارقام المدخلة فى التكست بوكس حتى يتم عمل المعادلة اللازمة لمنع المستخدم من ادخال ارقام اكثر من العدد المطلوب (11 رقم ) وهنا سوف نستخدم الدالة (LEN)
وسيكون شكل الكود كالاتى
If Len(Me.TextBox1.Value) > 11 Then
MsgBox "number mustbe8 digits"
Me.TextBox1 = ""
End If
MsgBox "number mustbe8 digits"
Me.TextBox1 = ""
End If
وبذلك يكون الكود يعمل انة فى حالة ادخال اكثر من 11 character ولكن هناك مشكلة اذا قومنا بادخال حرف او نص او مسافة سوف تقوم الدالة (LEN) باحتساب 11 موضع فقط لاغير بغض النظر عن كونة رقم او نص اوغير ذلك وهذا سيسبب مشكلة كبيرة فى دقة النتائج
كيف نتغلب على هذة المشكلة من خلال اضافة كود اخر يقوم باختبار محتويات الخلية اذا كانت نص او اى شئ غير الارقام لن يقبل الادخال
With TextBox1
If Not IsNumeric(.Value) And .Value <> vbNullString Then
MsgBox "sorry,only number allowed"
If Not IsNumeric(.Value) And .Value <> vbNullString Then
MsgBox "sorry,only number allowed"
.Value = vbNullString
لمعرفة كيفية عمل الكود يرجى متابعة شرح الفيديو