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

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

قام بنشر

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

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

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

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