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

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

قام بنشر

اخوانى السلام عليكم

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

تكست بوكس للبحث فى عمود الاول للست والثانى والثالث

البحث يكون بالحرف الاول او جزء من الكلمة

ثم اختيار من الست وترحيله لورقة الحسابات

اشكركم

11.rar

قام بنشر

اخى الكريم عمرو.محمد

اشكرك كل الشكر

هو المطلوب وبدقة

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

كيف جعلت الست من اليمين للشمال

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

ارجو شرح الكود البحث فقط على اسطر الكود ولكن باستفاضة شوية

اشكرك كل الشكر

قام بنشر

اخي الكريم  فيما يخص كيف جعل الاستاذ عمرو محمد الليست بوكس من اليمين الى اليسار ...هو ان تعمل كليك على الفورم ثم تذهب الى الخاصية right to left و تعمل لها false اما فيما يخص شرح الكود فكلنا منتظرين الاستاذ  عمرو ليكرمنا بشرحه...و شكرا 

قام بنشر

Private Sub TextBox1_Change()


'اخر الكريم تقبل تحياتى وهذا شرح بسيط بالعامية المصرية والبلدى كدة  بدون التطرق للشرح العملى
'للمتغيرات والمعادلات لان هذا يطول شرحة وستجد ما طلبت اذا بحثت بالمنتدى الرائع اوفيسنا

'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

' السطر القادم لتفادى اى خطأ فى الكود ومنع اظهار رسالة ال debug للمستخدم
On Error Resume Next

' بقوله  افرغ محتويات الليست بوكس  علشان لما تفتح الليست المرة القادمة متلاقيش البيانات المبحوث عنها المرة اللى فاتت موجودة
ListBox1.Clear

' متغيرات لاسم الصفحة والصفوف
Dim ws As Worksheet
Set ws = Sheets("data")
Dim i As Long
Dim v As Integer


'بقوله هنا  لو التكست بوكس اللى ببحث فيه مش فاضى نفذ اللى جاى
If Me.TextBox1.Text <> "" Then


'================================================


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

If Me.esm.Value = False And Me.ra2eesy.Value = False And far3y.Value = False Then
MsgBox "رجاء اختر نوع البحث اولا"
Me.TextBox1 = ""
Exit Sub
End If
'==============================================
'هنا بقى متغير اسمه lr   وده بيحددلى اخر صف فيه بيانات  فى العمود
lr = ws.Range("b" & Rows.Count).End(xlUp).Row


' بقوله من الصف الخامس لغاية اخر صف فيه بيانات     نفذ اللى جاى
' وديه اسمها حلقة تكرارية
For i = 5 To lr


' هنا متغيرات لتحديد الصفوف المبحوث بها  سواء بالاسم او الفرعى او الرئيسي
comp = ws.Cells(i, "b") 'اسم
comp2 = ws.Cells(i, "c") 'فرعى
comp3 = ws.Cells(i, "d") 'رئيسي


If ws.Cells(i, 1) <> "" Then

'============================================================
'لو البحث بالاسم هو اللى متحدد كومب هتبقي زى ماهى وهيبقى عمود البحث هو b
If Me.esm.Value = True Then
comp = comp
End If
'هنا لو الفرعى هو المتحدد كومب هتساوى كومب 2 اللى هو عمود البحث بالفرعى
If Me.far3y.Value = True Then
comp = comp2
End If
 'كذلك الامر هنا
If Me.ra2eesy.Value = True Then
comp = comp3
End If

 
 '============================================================


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

If InStr(1, comp, Me.TextBox1.Text, vbTextCompare) Then


' هنا بقوله لما تلاقى بيانات البحث ضيفها فى الليست بوكس
ListBox1.AddItem

'v ده متغير زى i  وده للصفوف
'الليست بتبتدى من الشمال لليمين  وهما اربع صفوف  (v,0) معناها الصف v اللى هيتكرر لو فى اكتر من نتيجة للبحث
'و zero  معناها العمود الاول فى الليست من الشمال وهكذا


' وهنا بقوله  ضيف نتائج البحث فى العمود 1 والصف i فى العمود التالت والصف v فى الليست بزكس وهكذا

Me.ListBox1.List(v, 3) = ws.Cells(i, 1).Value 'مسلسل
Me.ListBox1.List(v, 2) = ws.Cells(i, 2).Value 'اسم
Me.ListBox1.List(v, 1) = ws.Cells(i, 3).Value 'حساب فرعى
Me.ListBox1.List(v, 0) = ws.Cells(i, 4).Value 'رئيسي


'وديه علشان لو اكتر من نتيجة للبحث تتكرر ولو مكتبتهاش هيجيبلك نتيجة واحدة فقط
v = v + 1
' اقفل معادلات if
End If
End If

' اقفل الحلقة التكرارية for i = 5 to lr
Next i

'ولو الليست بوس فاضية مفيهاش صفوف او عدد صفوفها 0 امسحها علشان نتايج البحث السابقة متفضلش موجودة

If Me.ListBox1.ListCount = 0 Then
Me.ListBox1.Clear
End If

'كل اللى فات هيحصل لو التكست بوكش مش فاضى طيب لو فاضي امسح الليست بوكس
Else
Me.ListBox1.Clear
'اقفل قاعدة if
End If


End Sub

  • Like 1
قام بنشر

بسم الله ما شاء الله عليك أخي الكريم عمرو

شرح ولا أروع من كدا بجد استفدت منه لأني محتاج شوية في التعامل مع الفورم ..

صراحة شرح ممتاز تسلم ايديك

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

'        If Me.ListBox1.ListCount = 0 Then
'            Me.ListBox1.Clear
'        End If
'    Else
'        Me.ListBox1.Clear

دا بيمسح الليست بوكس ودا تم بالفعل في بداية الكود وهيتم دايماً في بداية الكود يعني ممكن نقول الجزء دا يعتبر زائد ولا حاجة لنا به .. ما رأيك فيما هو منسوب إلى الكود؟

قام بنشر

عمل رائع أبو حنين .. بصراحة ممتاز ممتاز ممتاز ( 3 ممتاز = 1 روعة)

يا ريت بقا تعمل لنا على نفس الملف إمكانية الاختيار من أكثر من عنصر للبحث ..مثال : نختار اسم الحساب الرئيسي العمليات ، ثم نحتفظ بالنتائج ونختار اسم العميل ونكتب اسم معين

أقصد أن يكون مرن في البحث بأكثر من معيار

تقبل وافر تقديري واحترامي

 

  • Like 1
قام بنشر
منذ ساعه, ياسر خليل أبو البراء said:

عمل رائع أبو حنين .. بصراحة ممتاز ممتاز ممتاز ( 3 ممتاز = 1 روعة)

يا ريت بقا تعمل لنا على نفس الملف إمكانية الاختيار من أكثر من عنصر للبحث ..مثال : نختار اسم الحساب الرئيسي العمليات ، ثم نحتفظ بالنتائج ونختار اسم العميل ونكتب اسم معين

أقصد أن يكون مرن في البحث بأكثر من معيار

تقبل وافر تقديري واحترامي

 

جزاكم الله خيرا أخي ياسر و اخي جلال

المرفق به إمكانية البحث بأكثر من معيار على السريع و ربما يحتوي على بعض الأخطاء

 

 

3333.rar

  • Like 2
قام بنشر

الاستاذ القدير ياسر خليل تقبل تحياتى

نعم عندك حق فيما ذكرت ولكن عيبى انى بحب اظبط منطق التكويد حتى لو مش ليه لازمة يعنى انا بعامل الVBA بالبلدى كدة  وقولتله لو التكست بوكس مش فاضي نفذ اللى جاى  ولو  فاضى امسح الليست  وحطيت الحلقة التكرارية برضو لنفس الغرض  مع انى عملت كدة فى اول الكود بس ده عيب فيا بصراحة بحب انفذ كل احتمالات منطق تنفيذ الكود 

مع انى تجاهلت انه يطلع عدد النتائج وتجاهلت حاله ان لم يوجد نتائج  وتجاهلت المسج بوكس التى تفيد باتمام الترحيل وكان هذا للعجلة 

 

ولكنك محق فيما قلت 

 

تقبل تحياتى وتأكد ان ما فعلته بفضل الله ثم ما تعلمته من هذا المنتدى الرائع والاساتذه الافاضل به  ومازلت اتعلم  وقد بدات من الصفر وعشقت هذا ال VBA  والان 

  • Like 1
قام بنشر

اخى عمرو.محمد

اشكرك كل الشكر

جزاك الله خيرا

اخى ابوحنين

الف الف شكر

جزاك الله خيرا

ارجو مراجعة الفورم الاخير

طلبى منك هو طلب الاخ ياسر

هل يمكن البحث باسم الحساب الرئيسى

ومن النتائج ابحث عن عميل معين

بمعنى البحث بمراحل من العام للاشمل ثم المخصص

نكون شاكرين اخى ابوحنين

قام بنشر

اخى ابوحنين

اشكرك على سعة صدرك اولا ومتابعتك للموضوع

جربت الفورم الاخير

ولم يعمل كما نريد

انا اقصد انى احدد فى الكمبو وليكن الاول الحساب الرئيسى واختار العملاء

وحين ظهور اسماء العملاء ابحث عن اسم ابوحنين فيظهر ابوحنين وحده

وارجو الا ترحل لصفحة الحسابات الا عن طريق زر

قام بنشر (معدل)

اخى ابوحنين

هو المطلوب ممتاز

جزاك الله خير بارك الله لك

الترحيل اريده للصف النشط والمختار فى اللست وارجو الا يشطب البيانات التى تسبقه  فى الورقة "حسابات" اخر صف+1

اشكرك

تم تعديل بواسطه احمد21
قام بنشر

اخى ابوحنين

اشكرك للمره المليون اخى وكل عام وانتم بخير

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

اشكرك اخى

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

قام بنشر

شكرا لك استاذ ابو حنين كود رائع ومفيد لكل البرامج ....ان امكن استاذ ابو حنين التمس منك  مساعدة في عمل زر في نفس الملف يعمل نسخة من ورقة (حسابات) اي عمل كلاسور جديد يحتوي على محتويات ورقة (حسابات) وتكون التسمية للكلاسور بتاريخ النظام ...ان امكن استاذي الفاضل ...وشكرا لك و للاستاذ   احمد21 على هذا الموضوع المفيد.

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