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

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

قام بنشر

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

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

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

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

قام بنشر

مشكور استاذ محمد

احسنت احسن الله اليك

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