31-12-20, 09:37 PM
(آخر تعديل لهذه المشاركة : 31-12-20, 09:44 PM {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 من الكود وستنتهي المشكلة ان شاء الله
