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

كيف اعمل قائمة مثل هذه في الاكسل


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

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

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

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

812180856.jpg

واريد ان يظهر بالمقابل جميع البيانات المتعلقة بالسلعة وشكرا

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

الأخ الفاضل / الأستاذ محمد يحياوى

صاحب الجديد والمفيد دائما

الف تحية على هذه الفكرة الرائعة

والتى تعلمت منها معلومات جميلة

والتى استغرقت منى وقت لانجاز قائمة مثلها موجودة فى الملف المرفق

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

ولكن لى طلب بسيط بعد إذنك

فى الكود المستخدم أرجو توضيح السطرين الاول والثانى والمتعلقين بتحديد المتغيرين yah و med ولماذا تم التعبير عنهما بهذه الطريقة ( private )


Private yah As String

Private med As String

Private Sub TextBox1_Change()

    yah = TextBox1.Text

    Call yah_med

End Sub

Sub yah_med()

    Dim i As Integer

    i = 3

    ListBox1.Clear

	    While Cells(i, 3).Value <> Empty

		    med = Cells(i, 3).Value

		    If UCase(Left(med, Len(yah))) = UCase(yah) Then

			    ListBox1.AddItem Cells(i, 3)

		    End If

		    i = i + 1

	    Wend

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Call yah_med

End Sub

فلترة حسب الطلب تجربة.rar

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

ردا على طلب اخي احمد

و ارجوا ان يكون طلب ايضا اخي رجب هذا الكود يحتوي على الشرح

بالنسبة لـ private تصريح خاص و يمكن استعمال Dim


Option Explicit

Dim yah As String

Dim med As String

' تصريح بالمتغيرات لاننا سنستعملها في جميع الاكواد

Private Sub TextBox1_Change()

	yah = TextBox1.Text

'  yah تعريف مربع النص باسم

	Call yah_med

'  استدعاء الماكروyah_med عند تغير النص

End Sub

Sub yah_med()

	Dim i As Integer

	i = 3

'  3 حتى نبدا الاختيار من السطر

	ListBox1.Clear

' اخلاء القائمة قبل بدأ التصفية

		While Cells(i, 3).Value <> Empty

' بداية الحلقة لان العود غير محدود

			med = Cells(i, 3).Value

'  C و هي قيم القائمة المصدر و العمود

			If (Left(med, Len(yah))) = (yah) Then

'  Len دالة لحسابة عدد حروف كلمة

'  Left  دالة لاستخراج الاحرف للجزء الايسر من الجملة بحسب عدد الحروف

				ListBox1.AddItem Cells(i, 3)

'  اذا ستظهر في القائمة جميع العناصر التي يتوفر فيها الشرط

			End If

			i = i + 1

'  المتغير يضيف صف

		Wend

'  نهاية الحلقة

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Call yah_med

'استدعاء الماكرو عند تغير التحديد

End Sub

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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information