اشكر اخي الحبيب "ابو احمد" الحقيقة لقد قرات السؤال صباحا و كنت قد اعددت الرد لكن شغلتني بعض الامور و لم افرغ الا الساعة و وجدت رد اخي "ابو احمد" بارك الله فيه وافيا شافيا لكني اردت استزادة الحل و تنويعه اثراء للموضوع
اخي الكريم لتفهم عمل الكود عليك اولا اظهار الاعمدة المخفية
ثانيا عليك بالتعرف على النطاقات Criteria(j1:j3) ...... "E:E"Database .... (العمود Extract (H1 و يمكن كتابة عنوان الخلية و الاستغناء عن اسم النطاق ... name H2 .... يمكن اظهار النطاقات من علبة الاسم في اعلى اليسار او الذهاب الى ادراج ---> اسم ---< ادراة الاسماء ...... او صيغ ---> ادارة الاسماء (2010)
ثالثا عليك دراج ComboBox .... من عناصر التحكم Activexcontrols .... ثم من خصائص اذهب الى ListFillRange ..... و اكتب اسم النطاق name
و ارتباط الخلية التي يظهر فيها الاسم في LinkedCell
ناتي الان الى الكود في حدث تغيير ComboBox1 و هو ()Private Sub ComboBox1_Change و هو امر الفلترة المتقدمة AdvancedFilter
و الذي ياخذ البيانات من النطاق Database و يضعها( (CopyToRange في النطاق H1 او Extract طبعا المعيار هو النطاق Criteria
و الذي يحتوي على معادلة البحث
=ISNUMBER(SEARCH($A$2;E2))