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

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

السلام عليكم ورحمة الله تعالي وبركاته     .........  الاخوة الافاضل اساتذتي الكرام

يوجد كود استدعاء بيانات من الشيت الى اليوزر فورم ولكن بيتم الاستدعاء برقم المسلسل اريد ان يكون الاستدعاء بالاسم وليس رقم المسلسل وعند تعديله للاسم بيحصل خطأ ارجو معرفة السبب الكود موجود اسفل الصورة ولكم منى تحياتى

 

بحث.JPG

 

Private Sub ComboBox1_Change()
Dim LR As Long
Set ws = ThisWorkbook.Sheets("ورقة1")
LR = Sheets("ورقة1").Cells(Cells.Rows.Count, "A").End(xlUp).Row
Me.TextBox1.Value = Application.WorksheetFunction.VLookup(Val(ComboBox1.Value), ws.Range("a5:z" & LR), 2, 0)
Me.TextBox2.Value = Application.WorksheetFunction.VLookup(Val(ComboBox1.Value), ws.Range("a5:z" & LR), 3, 0)
Me.TextBox3.Value = Application.WorksheetFunction.VLookup(Val(ComboBox1.Value), ws.Range("a5:z" & LR), 4, 0)
Me.TextBox4.Value = Application.WorksheetFunction.VLookup(Val(ComboBox1.Value), ws.Range("a5:z" & LR), 5, 0)
End Sub

مرفق ملف توضيحي اكثر ......... ولكم منى جزيل الشكر 

 

 

 

رابط هذا التعليق
شارك

8 دقائق مضت, طائع said:

ارفق الملف بدلا من الصورة

دا ملف امنى يكون هناك حل كل المكلوب استخدام عمود الاسم للبحث بدلا من رقم المسلسل

يعني عند اختيار الاسم يم جلب البيانات بتعه لليوزر فورم

 

استخدام vlookup مع الفورم.rar

رابط هذا التعليق
شارك

15 دقائق مضت, طائع said:

انظر ماذا ترى هل فعل المطلوب ام لا 

اخبرنى

استخدام vlookup مع الفورم 111.rar

شكرا جدا لاهتمام حضرتك استاذي الفاضل بس معلش  يعني الملف ال انت بعته حل كويس وشغال عادي بس انا واضع كود داخل اليوزر فورم لتصفيه الاسماء بحيث مايكونش فيه اسم مكرر لو مضاف لاكثر من مره وايضا رك الفراغات في الكمبوبكس 

انظر على هذا الملف وانت تعلم ما اقصه

علما ان هذه  الطريقه  فيها خطأ

استخدام vlookup مع الفورم.rar

رابط هذا التعليق
شارك

5 دقائق مضت, طائع said:

اخى اليك المطلوب اذا فهمت بطريقة اخرى واضف انت عليه عدم التكرار

عمل المطلوب بطريقة اخرى.rar

 

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

انا مش فاهم انا عايز البيانات علي اليوزر فورم حضرتك بعتلى ملف مش فيه يوزر فورم اصلا

رابط هذا التعليق
شارك

أخي العزيز  / أبو حمادة 

سبب الخطأ أنك استخدمت  دالة ( ) وهي تعتمد في البحث بالرقم 

جرب استبدال الكود السابق بهذا الكود إن شاء الله يكون مطلوبك

Private Sub ComboBox1_Change()
Dim LR As Long
Set ws = ThisWorkbook.Sheets("ورقة1")
LR = ws.Cells(Cells.Rows.Count, "B").End(xlUp).Row
For Each CL In ws.Range("b5:b" & LR)
If ComboBox1 = CL.Text Then
Me.TextBox1 = CL.Offset(0, 1).Value
Me.TextBox2 = CL.Offset(0, 2).Value
Me.TextBox3 = CL.Offset(0, 3).Value
Me.TextBox4 = CL.Offset(0, 4).Value
End If
Next CL
End Sub

ولا بد أن أيضا من تغير مدى النطاق المسمى ( بيانات ) ليأخذ بياناته من العمود (B) ولو كان مدى دناميكي أفضل بهذا الشكل 

=OFFSET(ورقة1!$B$5;;;COUNTA(ورقة1!$B$5:$B$1000))

تقبل تحياتي

تم تعديل بواسطه الشهابي
  • Like 2
رابط هذا التعليق
شارك

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