ردا على طلب اخي احمد
و ارجوا ان يكون طلب ايضا اخي رجب هذا الكود يحتوي على الشرح
بالنسبة لـ 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