منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشكلة استعلام textbox1 عن رقم مثل 10/20/1000/0
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم
قمت بانشاء فورم فى برنامج الاكسل يقوم واضافة وترحيل البيانات الى ملف الشيت
ويقوم text box1 ( رقم الحساب ) بعمل استعلام داخل الشيت للبحث في العمود الخاص برقم الحساب لمعرفة رقم الحساب المراد اضافتة موجود مسبقا ام لا في شيت العمل
المشكلة هي صيغة رقم الحساب . فمثلا ارقام الحساب التى اعمل عليها تكون بصورة  10/20/100/0 لا يقوم بجلب البيانات من الشيت مع العلم بان رقم الحساب موجود فعلا
مع العلم ان الكود يعمل اذا كان  رقم الحساب ( عدد صحيح) متل 10000
الكود المستخدم
Private Sub TextBox1_Change()
lr = WorksheetFunction.CountIf(Range("c2:c10000"), Val(TextBox1.Value))
If TextBox1.Value <> "" And lr = 1 Then
TextBox2.Value = WorksheetFunction.VLookup(Val(TextBox1.Value), Range("c2:q10000"), 2, 0)
TextBox3.Value = WorksheetFunction.VLookup(Val(TextBox1.Value), Range("c2:q10000"), 3, 0)
TextBox4.Value = WorksheetFunction.VLookup(Val(TextBox1.Value), Range("c2:q10000"), 4, 0)
ComboBox1.Value = WorksheetFunction.VLookup(Val(TextBox1.Value), Range("c2:q10000"), 5, 0)


Else
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
ComboBox1.Value = ""

End If

End Sub
ارجو المساعدة ولكم جزيل الشكر
(24-12-20, 10:54 PM)moodyfy كتب : [ -> ]السلام عليكم
قمت بانشاء فورم فى برنامج الاكسل يقوم واضافة وترحيل البيانات الى ملف الشيت
ويقوم text box1 ( رقم الحساب ) بعمل استعلام داخل الشيت للبحث في العمود الخاص برقم الحساب لمعرفة رقم الحساب المراد اضافتة موجود مسبقا ام لا في شيت العمل
المشكلة هي صيغة رقم الحساب . فمثلا ارقام الحساب التى اعمل عليها تكون بصورة  10/20/100/0 لا يقوم بجلب البيانات من الشيت مع العلم بان رقم الحساب موجود فعلا
مع العلم ان الكود يعمل اذا كان  رقم الحساب ( عدد صحيح) متل 10000
الكود المستخدم
Private Sub TextBox1_Change()
lr = WorksheetFunction.CountIf(Range("c2:c10000"), Val(TextBox1.Value))
If TextBox1.Value <> "" And lr = 1 Then
TextBox2.Value = WorksheetFunction.VLookup(Val(TextBox1.Value), Range("c2:q10000"), 2, 0)
TextBox3.Value = WorksheetFunction.VLookup(Val(TextBox1.Value), Range("c2:q10000"), 3, 0)
TextBox4.Value = WorksheetFunction.VLookup(Val(TextBox1.Value), Range("c2:q10000"), 4, 0)
ComboBox1.Value = WorksheetFunction.VLookup(Val(TextBox1.Value), Range("c2:q10000"), 5, 0)


Else
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
ComboBox1.Value = ""

End If

End Sub
ارجو المساعدة ولكم جزيل الشكر

أخي رقم الحساب بهذه الهيئة ( 10/20/100/0) هو عبارة عن نص وأنت تستخدم الدالة val التي تحول النص الي رقم لذي فأن الدالة vlookup تبحث عن


كود :
val("10/20/100/0")


الذي سيعطي قيمة مختلفة تماما عن النص الذي أدخلته جرب أن تضع هذه الكود داخل شاشة الـ Immedate واضغط علي انتر وانظر القيمة الناتجة كيف هي 


كود :
?val("10/20/100/0")



وباختصار قم بازالة الدالة val من الكود وستنتهي المشكلة ان شاء الله