انتخاب چندگزینه از لیست کشویی در اکسل

4,214
11 دیدگاه
انتخاب چند گزینه از لیست کشویی

همانطور که می دانید در اکسل می توان با استفاده از ابزار Data Validation لیست های کشویی (Dropdown List) ایجاد کرد و به کاربر امکان انتخاب از میان گزینه های از پیش تعیین شده را داد. در حالت عادی هر بار تنها یک گزینه از لیست کشویی را می توان انتخاب کرد اما گاهی اوقات نیاز است که کاربر چند گزینه را از لیست انتخاب نماید برای مثال انتخاب چند روز هفته یا انتخاب رشته های ورزشی مورد علاقه و … که به واسطه کارتون به آن نیاز دارید. در اینجا می خواهیم به روشی ساده امکان انتخاب چند گزینه از لیست کشویی در اکسل را فراهم کنیم. با ما همراه باشید.

ساخت منوی کشویی با امکان انتخاب چند گزینه

جهت ساخت لیست کشویی با امکان انتخاب چند گزینه در اکسل از کدنویسی استفاده می شود. برای اینکار فایل اکسل خود را باز کنید و با استفاده از ابزار Data Validation در یکی از سلول ها منوی کشویی ایجاد نمایید. سپس همانند تصویر از روی نام sheet کلیک راست کرده و گزینه View Code را انتخاب کنید تا محیط کد نویسی آن باز شود.

گزینه view code

حال کد های ذیل را در این قسمت وارد نمایید:

Option Explicit
     '============== Sheet1.ir ================
Private Sub Worksheet_Change(ByVal Target As Range)
    'آدر سلول يا سلول هاي داراي ليست کشويي
    If Target.Address = "$B$9" Then
        Dim Old_txt, New_txt, Sep_txt As String
        With Application
           'کاراکتر جداکننده بين گزينه ها
           Sep_txt = " " & Chr(124) & " "
           'لغو عمليات در زمان حذف محتواي سلول ليست کشويي
          If Target.Value = "" Then Exit Sub
          'غير فعال کردن نمايش پيغام هاي اکسل
          .EnableEvents = False
          'کنترل خطا : درزمان ورود مواردي غير از آيتم هاي ليست کشويي
          On Error GoTo onErr2
          '
           New_txt = Target.Value & Sep_txt
           .Undo
           Old_txt = Target.Value
           '
           'کنترل وجود آيتم تکراري
           On Error GoTo onErr1
           If .WorksheetFunction.Search(New_txt, Old_txt) > 0 Then
               Target.Value = .WorksheetFunction.Substitute(Old_txt, New_txt, "")
               .EnableEvents = True
                Exit Sub
           End If
onErr1:
           Target.Value = Old_txt & New_txt
onErr2:
           'فعال کردن نمايش پيغام هاي اکسل
             .EnableEvents = True
       End With
    End If
End Sub

نتیجه همانند تصویر ذیل خواهد بود.

دقت کنید که در خط 5 کد بالا به جای 9$B$ آدرس سلولی که منوی کشویی را ساخته اید وارد نمایید. حال به محیط اکسل باز گردید و منوی کشویی را امتحان کنید. خواهید دید که با انتخاب هر گزینه، آن گزینه به محتوای سلول اضافه می شود. برای حذف یک گزینه از محتوای سلول نیز کافی است دوباره آن گزینه را از لیست انتخاب کنید. به همین سادگی امکان انتخاب چند گزینه از لیست کشویی را فراهم کردید.

در صورتی که در چند سلول لیست کشویی ایجاد کرده اید باید آدرس تمام آن سلول ها را به خط 5 کد بالا اضافه کنید. برای مثال فرض کنید در سلول های C10 و D12 لیست کشویی وجود دارد. در خط 5 به صورت ذیل آدرس ها را وارد کنید:

    '============== sheet1.ir ================
    If Target.Address = "$C$10" Or Target.Address = "$D$12" Then

کاراکتر جدا کننده بین آیتم ها نیز با دستور Chr در خط 9 مشخص می شود. در اینجا از Chr(124) برای گذاشتن کاراکتر | بین آیتم های انتخاب استفاده شده است. Chr عملکردی مشابه تابع  CHAR در اکسل را دارد و با وارد کردن شماره یونیکد هر کاراکتر، آن را نمایش می دهد. برای آشنایی بیشتر توضیحات توابع CHAR ، UNICHAR و UNICODE را ببینید.

نتیجه کار را می توانید در ویدیو ذیل مشاهده  و فایل اکسل مربوط به این مطلب را دریافت کنید:

تعداد دانلود : 498

مطالب مرتبط :

5 4 رای ها
امتیاز
اطلاع از
guest

11 نظر / سوال
قدیمی ترین
تازه‌ترین بیشترین واکنش نشان داده شده(آرا)
بازخورد (Feedback) های اینلاین
مشاهده تمامی نظرات
11
0
خوشحال می شویم نظر شما را در مورد این مطلب بدانیمx