فیلتر یک لیست بر اساس حروف تایپ شده (ماکرو نویسی ساده)
فیلتریک لیست روشی قدرتمند و ساده جهت تجزیه و تحلیل داده هاست.
اما فیلتر کردن در اکسل نیازمند کلیک های زیاد و تایپ اطلاعات جهت رسیدن به نتیجه دلخواه می باشد.
اگر با اکسس آشنایی داشته باشید می بینید که به محض تایپ یک حرف، کلیه کلماتی که دارای حرف تایپ شده هستند فیلتر می شوند.
اما در اکسل چنین کاری به صورت پیش فرض امکان پذیر نیست.
در این مقاله قصد دارم این روش را با نوشتن یک خط کد VBA برای شما توضیح دهم.
فیلتر کردن بر اساس حروف تایپ شده
مرحله 1: یک لیست شامل داده هایی که قصد فیلتر کردن آن را دارید آماده کنید
برای سادگی کار فرض کنید که لیست استان ها در یک جدول که نام آن را “استان” گذاشته ایم آماده کرده ایم.
برای آشنایی با نام گذاری به این مقاله مراجعه کنید
مرحله 2: یک باکس متنی از نوع active-x در صفحه قرار دهید.
برای انجام این کار به تب Developer رفته و سپس بر روی insert کلیک کرده و از قسمت active-x control بر روی text box کلیک کنید
بهتر است که این کنترل باکس را بالای اسامی استان ها قرار دهید.
توجه: تب Developer به صورت پیش فرض در منوهای اکسل قرار ندارد. برای فعال کردن آن به مسیر زیر بروید
File>Options>Customize Ribbon و سپس از پنجره سمت راست تیک کنار عبارت Developer را فعال کرده و بر روی دکمه Ok کلیک کنید
تا این نوار ابزار به منوهای اکسل اضافه شود.
مرحله 3: تکست باکس را به یک سلول خالی لینک کنید
برای انجام این کار بر روی text box راست کلیک کرده و بر روی Properties کلیک کنید.
از پنجره ظاهر شده مقابل Linked Cell آدرس سلول لینک را وارد کنید. در این مثال من آن را به E4 لینک کرده ام.
مرحله 4: خاصیت change event را به text box اضافه کنید.
بر روی text box راست کلیک کرده و بر روی view code کلیک کنید تا به صفحه ویرایشگر VBA وارد شوید.
می بینید که دو خط کد به صورت زیر ایجاد شده است
()Private Sub TextBox1_Change
End Sub
کد نوشته شده در پایین را بین دو خط کد نوشته شده قرار دهید
تعریف اصلاح Event
Event یک ماکرو است (کد VBA) و زمانی که یک وضعیت دلخواه اتفاق می افتد اجرا می شود.
به عنوان مثال TextBox1_Change وقتی که مقدار text box تغییر کند کدی را اجرا می کند این تغییر می تواند ورد یک مقدار، تغییر یک مقدار و یا حذف مقدار درون text box باشد.
ما در اینجا برای فیلتر کردن جدول اطلاعات (استان) باید یک کد VBA بنویسیم تا زمانی که کاربر مقداری را درون text box می نویسد این کد اجرا شده
و عمل فیلتر کردن را بر اساس مقدار وردی به text box انجام دهد. این کد فقط یک خط است.
ActiveSheet.ListObjects(“states“).Range.AutoFilter Field:=1, Criteria1:=”*” & [A1] & “*”, Operator:=xlFilterValues
در اینجا می توانید نام جدول (states) و سلول لینک (A1) را بر اساس اطلاعات خود در کد بالا تغییر دهید.
حالا VBA را ببندید و به اکسل بازگردید.
مرحله 5: در این مرحله حروفی را text box بنویسید و نتیجه را مشاهده کنید.
توجه: اگر در مرحله طراحی هستید (design mode) با کلیک بر روی دکمه design mode در تب Developer از آن خارج شوید.
به بقیه هم پیشنهاد میکنم این سایت رو دنبال کنن
من از خوندن مطلب فوق بسیار لذت بردم بیشتر از این مطالب در وبسایتتون قراردهید.
سپاس از اشتراک مطالب خوبتون
سایت خیلی خوبی دارید ممنون
مطالب سایت عالیه.ممنون از شما.به امید توفیق روزافزون
کارتون حرف نداره
کاشکی آموزش مجازی هم برگزار کنید؟
بسیار عالی به کارتون ادامه بدین و همیشه موفق باشید
خیلی ممنون بابت آموزش بسیار کاربردیتون دوست عزیز
پاینده باشید
آموزش فوق العاده ای بود
سلام وقت بخیر این مطلب بسیار مفید بود امکان داره بیشتر در مورد بخش تب Developer توضیح بدید