تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة استعلام textbox1 عن رقم مثل 10/20/1000/0
#1
السلام عليكم
قمت بانشاء فورم فى برنامج الاكسل يقوم واضافة وترحيل البيانات الى ملف الشيت
ويقوم 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
ارجو المساعدة ولكم جزيل الشكر


الملفات المرفقة
.rar   برنامج الاستعجال ver3.rar (الحجم : 804.17 ك ب / التحميلات : 2)
الرد }}}
تم الشكر بواسطة:
#2
(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 من الكود وستنتهي المشكلة ان شاء الله
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم