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

طريقة عمل فورم بحث واظهار النتائج في ليست بوكس وتعديل النتائج !! خطوة خطوة


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

أخي الاستاذ حماده عمر السلام عليكم ورحمة اللة وبركاتة

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

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

وشكرا جزيلا .

مكتبة.rar

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

  • الردود 313
  • Created
  • اخر رد

Top Posters In This Topic

السلام عليكم

الاخ الكريم / طلعت محمد حسن

بارك الله فيك

وعذرا علي التأخير في الرد

 

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

ولكن بالنسبة للكود ما هو الشئ الذي لم يمكنك ان تتفهمه حيث انني عندما كنت اقوم باعداد هذا الموضوع

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

وبالفعل يمكن وضع اكواد اخري كثيرة لتنفيذ ذلك ولكن هذا الكود اري انه سهل ويؤدي الغرض ويعطي النتائج بكل دقة

 

واي جزء في الكود غير مفهوم بالنسبة لك ارسل لي وسوف اقوم بشرحه لك  حتي يمكنك فهم الكود جيدا

تفضل المرفقات

 

 

مكتبةsama.rar

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

الاستاذ حماه عمر المحترم

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

احاول ان اتعلم من اعمالكم وان ابتعد كل البعد عن النسخ واللصق.

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

الكود الموجود في حدث ComboBox في الاربع مراحل مفهوم اما الباقي غير مفهوم

 

اولا : بالفعل انا سعيد باصرارك علي التعلم والاستفادة بكل طريقة

وفققك الله

الذي يعمل معك اخي الكريم هي الاكواد التي فهمتها انت

اما عن باقي الاكواد فليس لها اي وظيفة لديك في ملفك

 

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

تركت باقي الاكواد دون حذف

 

تقبل خالص تحياتي

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

السلام عليكم

الاخ الكريم / طلعت محمد حسن

بارك الله فيك

بالنسبة لملفك المرسل فليس به اي خطأ بالنسبة للاكواد

ولكن  الخطأ الذي تقصده هو ضبط لبعض خصائص الفورم والليست  فقط

 

** بالنسبة لليست .. يتم تحديد عدد الاعمدة التي تريد ظهورها وذلك من خلال خصائص الليست في التصميم

كما في الصورة التالية

6VUXw.jpg

 

 

** وان تركت الفورم بعد ذلك ايضا دون ضبط سوف تظهر لك البيانات بالعكس اي من اليسار الي اليمين

    ولضبط ذلك يتم تحديد ذلك من خلال خصائص الفورم لتظهر البيانات من اليمين لليسار كما تريد في مثالك

     ويتم ذلك كما في الصورة التالية

 

w2Sm2.jpg

 

ارجو ان اكون وضحت لك المطلوب بشكل دقيق

معك دائما باذن الله

تقبل خالص تحياتي

 

New folder.rar

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

اللة يحفظك من كل مكروه 

اشكرك جزيل الشكر لصبرك علي.

 

السلام عليكم

الاخ الحبيب / طلعت محمد حسن

بارك الله فيك

المهم اخي الكريم ان تصل لما تريد

ولاداعي للقلق اخي الحبيب ... فكلنا هنا جميعا نتعلم ونعلم بعضا البعض

ابتغاء مرضاه الله فقط ومحبه في الله

ولا تترد ابدا في استسفار او سؤال لتتعلم وتصبح مميزا ومتمكناً

وان شاء الله دائما معك في اي طلب او موضوع ( مادام علي حسب علمي وفي مقدرتي الرد عليه )

تقبل خالص تحياتي

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

السلام عليكم ورحمة اللة وبركاتة

بالمرفق معلومات عن كتب وعن ثمنها هل ممكن عرض في الست بوكس الكتب غير المسددة او الكتب المسددة.

وشكرا جزيلا لكم

الكتب.rar

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

السلام عليكم

الاخ الحبيب / طلعت محمد حسن

بارك الله فيك

لتفيذ طلبك يمكنك استخدام الكود التالي اخي الحبيب

وعذرا علي التأخير ... حيث لم اري الطلب الا الآن

Private Sub ComboBox1_Change()
Dim v As Integer, Lr
ListBox1.Clear
Lr = ورقه1.Cells(ورقه1.Rows.Count, "A").End(xlUp).Row
For i = 1 To Lr
If ورقه1.Cells(i, 1).Offset(0, 8) = ComboBox1.Text Then
ListBox1.AddItem ورقه1.Cells(i, 1).Value
ListBox1.List(v, 1) = ورقه1.Cells(i, 1).Offset(0, 1).Value
ListBox1.List(v, 2) = ورقه1.Cells(i, 1).Offset(0, 2).Value
ListBox1.List(v, 3) = ورقه1.Cells(i, 1).Offset(0, 3).Value
ListBox1.List(v, 4) = ورقه1.Cells(i, 1).Offset(0, 4).Value
ListBox1.List(v, 5) = ورقه1.Cells(i, 1).Offset(0, 5).Value
ListBox1.List(v, 6) = ورقه1.Cells(i, 1).Offset(0, 6).Value
ListBox1.List(v, 7) = ورقه1.Cells(i, 1).Offset(0, 7).Value
ListBox1.List(v, 8) = ورقه1.Cells(i, 1).Offset(0, 8).Value
ListBox1.List(v, 9) = ورقه1.Cells(i, 1).Offset(0, 9).Value
  
  v = v + 1
  End If
  Next
End Sub

واليك الملف بالمرفقات

 

الكتب.rar

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

بوركت استاذي حمادة 

لو سمحت شرح جملة IF من الكود

وعن كيفية معاينة الطباعة للنتائج بالست بوكس

وشكرا جزيلا

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

اخي الحبيب

تفضل المطلوب ... وان غير كذلك او مزيد من التوضيح

اخبرني هنا ومعك دائما باذن الله

Private Sub ComboBox1_Change()
Dim v As Integer, Lr
'مسح بيانات الليست 
ListBox1.Clear
' الحصول علي آخر صف به بيانات في العمود A
Lr = ورقه1.Cells(ورقه1.Rows.Count, "A").End(xlUp).Row
' حلقة تكراررية تبدأ من الصف الاول وحتي آخر صف به بيانات
For i = 1 To Lr
' نستخدم قاعدة IF حيث نقول فيها انه في حالة ما اذا كان قيمة 
'  الخلية الموجودة في العمود رقم 8 في كل الصفوف الخاصة بالمتغير i
' اي من اول صف للآخر صف بهذا الجزء Cells(i, 1).Offset(0, 8)
' تساوي قيمة الكومبوبكس اجعل تنفيذ الاوامر التالية 
If ورقه1.Cells(i, 1).Offset(0, 8) = ComboBox1.Text Then
' يتم وضع الاجراءات التالية اذا تحقق الشرط للقاعدة السابقة 
ListBox1.AddItem ورقه1.Cells(i, 1).Value
ListBox1.List(v, 1) = ورقه1.Cells(i, 1).Offset(0, 1).Value
ListBox1.List(v, 2) = ورقه1.Cells(i, 1).Offset(0, 2).Value
ListBox1.List(v, 3) = ورقه1.Cells(i, 1).Offset(0, 3).Value
ListBox1.List(v, 4) = ورقه1.Cells(i, 1).Offset(0, 4).Value
ListBox1.List(v, 5) = ورقه1.Cells(i, 1).Offset(0, 5).Value
ListBox1.List(v, 6) = ورقه1.Cells(i, 1).Offset(0, 6).Value
ListBox1.List(v, 7) = ورقه1.Cells(i, 1).Offset(0, 7).Value
ListBox1.List(v, 8) = ورقه1.Cells(i, 1).Offset(0, 8).Value
ListBox1.List(v, 9) = ورقه1.Cells(i, 1).Offset(0, 9).Value
  
  v = v + 1
  End If
  Next
End Sub

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

شرح جميل ووافي اشكرك استاذي العزيز

سؤالي هو عن امكانية المعاينة لمحتويات اللست بوكس للطباعة

وشكرا

 

اخي الكريم

هل شاهدت المشاركة رقم  179  هنا في هذا الموضوع

http://www.officena.net/ib/index.php?showtopic=46129&page=9

 

جرب زر طباعة البيانات

وجرب الضغط 2 كليك علي نتائج الليست بعد ظهورها

هل هذا ما تريده ام ان طلبك مختلف

في انتظار ردك

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

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

والشكر لك استاذي

الكتب.rar

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

شاهد اخي المرفق

ان شاء الله به المطلوب ... حسب فهمي لطلبك

ولكن يجب وضع معلومة هنا

انه اخي الحبيب ... ظهور الفورم نفسه او البيانات في الفورم هي معاينة للفورم وبياناته حيث انه لاتوجد معاينة للفورم نفسه

 

 

الكتب1122.rar

تم تعديل بواسطه حمادة عمر
رابط هذا التعليق
شارك

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

بارك اللة فيك وبارك اللة بأولادك.

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

لاتتردد اخي الحبيب في اي اسئلة او استفسارات

ومادامت في حدود علمي ان شاء الله لن اتأخر عنك وعن الرد

فكلنا هنا نتعلم ونعلم بعضنا البعض ونحن هنا لنفيد بعضنا

ولكن طلبي الوحيد

هو وضع كل طلب في مكانه لعدم الاخلال بقواعد المشاركة بالمنتدي ولزيادة الافادة للجميع

فان كان يخص احد موضوعاتي فيتم وضعه فيه

اما اذا كان موضوع جديد ضعه في موضوع جديد لزيادة الافادة وتنوع الحلول واخبرني بالرابط الخاص بالموضوع

للاطلاع عليه وتقديم كل ما في وسعي

تقبل خالص تحياتي

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

شكرا اخي حماده سؤالي عن عدد النتائج باللست بوكس وكذالك مجموع الاسعار الظاهره باللست بوكس كما بالمرفق

الكتب.rar

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

السلام عليكم

الاخ الحبيب / طلعت محمد حسن

بارك الله فيك

بالنسبة لطلبك الاخير والمقسم الي طلبين

الاول : بخصوص عد النتائج في الليست في تكست بوكس ( كما هو في الفورم الخاص بك )

يمكن استخدام ذلك بطريقتين ( اسهل من بعض )

الكود الاول

' وفيه نقول اجعل قيمة التكست بوكس تساوي المتغير الخاص بنتائج الليست والذي يأخذ قيمته من السطر 
' V = V + 1
TextBox1.Value = v

الكود الثاني

'وفيه نقول اجعل قيمة التكست بوكس 1 تساوي عدد صفوف الليست وهو بالضبط عدد النتائج 
TextBox1.Value = ListBox1.ListCount

الثاني :   والخاص بتجميع عمود السعر من نتائج الليست  في ( تكست بوكس 2 ) كما هو في ملفك

فأولا لاحظ اضافة سطر بسيط في بداية الكود وهو

' وفيه نقول اجعل قيمة التكست بوكس 2 تساوي لا شئ حتي يتم حساب القيمة المطلوبة بعد ذلك 
' علي اساس سليم وعلي اساس النتائج المختلفة في كل مرة 
TextBox2.Text = ""

ثم لوضع قيمة تجميع عمود الليست المطلوب وهو ( السعر )

يتم وضع الكود التالي لتنفيذ المطلوب

'في هذا السطر نضع متغير تكون قيمته من بداية الليست حتي نهايته وهو المتغير S
For S = 0 To ListBox1.ListCount - 1
' وهنا نقول ان قيمة التكست بوكس 2 تساوي قيمة التكست بوكس نفسه + قيمة العمود الثامن من الليست
TextBox2.Text = Val(TextBox2) + Val(ListBox1.Column(7, S))
'السطر التالي خاص بتنسيق التكست بوكس 2 لوضع المنازل العشرية عند التجميع 
TextBox2.Value = Format(Me.TextBox2.Value, "#0.00")
'السطر التالي هو نهاية جمله FOR بعد وضع قيمة المتغير S
Next S

وبذلك تكون النتائج في الفورم بعد وضع هذه الاكواد كما في الصورة التالية

 

GXiCy.jpg

 

ارجو ان اكون قد اوضحت لك الصوروة بشكل جيد

وتم تنفيذ المطلوب كما تريد

تقبل خالص تحياتي

 

 

 

 عد النتائج في ليست وتجميع عمود معين.rar

 

 

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

استاذي الفاضل ابو سما

لا استطيع ان اعبر بعد ان عبر اخواني واخواتي بجل امتنانهم لك ولكن احب ان اقول هنيئا لك ان حزت على دعوات اخوانك لك في ضهر الغيب اسال الله العظيم ان يحفك من كل مكروه وان يحمي لك اولادك وان يعافيهم ويبعد عنهم السوء وابناء وبنات الحرام وان يجعلهم الصالحين ومن العظماء المتميزين مثل ابيهم .

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

زائر
هذا الموضوع مغلق.



×
×
  • اضف...

Important Information