سرچ در لیست کشویی

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • sahar_1427
    • 2016/02/06
    • 1

    سرچ در لیست کشویی

    سلام من یه لیست کشویی از نام و نام خانوادگی ها ساختم. و سلولهای کناریش رو با تابع vlookup به این سلول مرتبط کردم و میتونم با انتخاب نام و نام خانوادگی اطلاعات اون سلولها را پیدا کنم
    حالا سوالم اینه که وقتی تعداد اسامی خیلی زیاد باشن
    و چشمی نشه پیدا کرد نام مورد نظر رو
    در حالت کشویی امکان جستجو نداریم؟
    مثل حالت فیلتر که سرچ داره
    فایل های پیوست شده
  • Javid Mokhtari
    مدير تالار ويژوال بيسيك

    • 2012/01/16
    • 1212
    • 73.00

    #2
    نوشته اصلی توسط sahar_1427
    سلام من یه لیست کشویی از نام و نام خانوادگی ها ساختم. و سلولهای کناریش رو با تابع vlookup به این سلول مرتبط کردم و میتونم با انتخاب نام و نام خانوادگی اطلاعات اون سلولها را پیدا کنم
    حالا سوالم اینه که وقتی تعداد اسامی خیلی زیاد باشن
    و چشمی نشه پیدا کرد نام مورد نظر رو
    در حالت کشویی امکان جستجو نداریم؟
    مثل حالت فیلتر که سرچ داره
    با سلام.

    با استفاده از ابزار اکسل در حالت لیست کشویی امکان پذیر نیست.

    مگر اینکه به قول خودتون از فیلتر و تیبل استفاده کنید.
    [FONT=Tahoma][INDENT][CENTER][SIZE=3][FONT=courier new][B][FONT=comic sans ms][SIZE=3][FONT=arial]دوره های آموزش رایگان اکسل از صفر تا پیشرفته بصورت تصویری
    بیش از [COLOR=#008000]60[/COLOR] جلسه آموزش ویدئویی رایگان

    شرکت در دوره:
    [/FONT][/SIZE]
    [SIZE=5] [FONT=Tahoma][FONT=courier new][B][URL]https://javidsoft.ir/courses/[/URL][/B][/FONT][/FONT][/SIZE][/FONT]
    [/B][/FONT][/SIZE]
    [/CENTER]
    [/INDENT]
    [/FONT]

    کامنت

    • iranweld

      • 2015/03/29
      • 3341

      #3
      با سلام

      در فایل پیوست شما کافیست در سلول A2 یک یا چند حرف اول نام طرف را تایپ کنید مثلا با تایپ حرف ف در منوی کشویی هر اسمی که ابتدای آن با ف شروع شود لیست میگردد

      کد PHP:
      Sub TEST()

      Dim CELLXXRNG As Range

      Z1 
      Sheet1.Cells(Sheet1.Rows.Count"A").End(xlUp).Row

      Z2 
      Sheet1.Cells(Sheet1.Rows.Count"H").End(xlUp).Row

      Sheet1
      .Range("H2:H" Z2).ClearContents

      2
      XX 
      Sheet2.Range("A2").Value

      Set RNG 
      Sheet1.Range("A2:A" Z1)

      For 
      Each CELL In RNG

      If Len(XX) > And XX Left(CELLLen(XX)) Then

      Sheet1
      .Range("H" K) = CELL

      1

      End 
      If

      Next

      End Sub 
      فایل های پیوست شده
      Last edited by iranweld; 2016/02/13, 20:09.

      کامنت

      • amir_ts

        • 2015/03/17
        • 1247

        #4
        با سلام

        همانطور که استاد ارجمند جناب jansiz hayat فرمودند در حالت لیست کشویی این امکان وجود نداره ولی با استفاده از combo box و ستون کمکی میشه به نتیجه دلخواه شما رسید.

        نمونه فایل رو مشاهده کنید.
        فایل های پیوست شده
        [SIZE=7][B][COLOR=navy][FONT=IranNastaliq]ای برادر تو همه اندیشه ای[/FONT][/COLOR][/B][/SIZE]

        کامنت

        • amir_ts

          • 2015/03/17
          • 1247

          #5
          با سلام

          برای ایجاد لیست کشویی با قابلیت جستجو ما به سه مرحله پردازش نیاز داریم:

          1-تنظیمات combo box از ActiveX Controls
          2-پردازش اطلاعات لیست
          3-استفاده از یک کد کوتاه vba در قسمت کد نویسی


          ابتدا از تب Developer از برگه insert یک combo box به شیت اضافه میکنیم.
          Click image for larger version

Name:	Excel-Drop-Down-Search-Box-Suggestion-Combo-Box.png
Views:	2
Size:	18.7 کیلو بایت
ID:	129408

          با کلیک راست بر روی combo box و انتخاب گزینه properties موارد زیر را بر روی combo box انجام میدهیم :
          قسمت AutoWordSelect را برابر با false قرار میدهیم.
          LinkedCell را برابر آدرس مورد نظر که قراره لیست در آن نمایش داده شود قرار دهید . ( درفایل نمونه توضیحی سلول a3 میباشد)
          در قسمت ListFillRange یک نام قرار بدید مثلا DropDownList ( توجه داشته باشید در قسمت name manager با همین نام باید محدوده ای پویا را نامگذاری کنیم.)
          در قسمت MatchEntry گزینه 2 – fmMatchEntryNone را انتخاب کنید.

          Click image for larger version

Name:	Excel-Drop-Down-Search-Box-Suggestion-Combo-Box-Properties.png
Views:	2
Size:	17.7 کیلو بایت
ID:	129409

          Click image for larger version

Name:	Search-Suggestion-Combobox-settings.png
Views:	2
Size:	80.3 کیلو بایت
ID:	129410

          به شیت لیست اسامی بر میگردیم .

          در اولین ستون کمکی (h) ابتدا با استفاده از فرمول

          کد PHP:
          =--ISNUMBER(IFERROR(SEARCH(Sheet4!$A$3;A2;1);"")) 
          از وجود نزدیک ترین حروف تایپی به ستون نام و نام خانوادگی مطلع میشیم.چنانچه نام مورد نظر و یا نزدیک ترین حروف به آن وجود داشت عدد 1 و در غیر اینصورت عدد صفر میگیره.

          در ستون کمکی دوم (i) هم با این استفاده ازفرمول زیر تعداد 1 ها یعنی مورد های نزدیک به جستجو شمارش میشن و یک ها( نام های مورد نظر ) رو رو به نوعی از هم تفکیک میکنیم که در مرحله بعد قابل بازیابی و تشخیص باشند .

          کد PHP:
                =IF(H2=1;COUNTIF($H$2:H2;1);""
          در ستون سوم کمکی (j) با استفاده از این فرمول تمام موارد یافته شده رو لیست میکنیم.

          کد PHP:
          =IFERROR(INDEX($A$2:$A$33;MATCH(ROWS($I$2:I2);$I$2:$I$33;0));""
          ستون سوم لیست اصلی ماست که باید نمایش داده بشه که با استفاده از name mangerو انتخاب نام DropDownList (دقیقا نامی که در combo box قرار داده شد) و قرار دادن محدوده پویای آن در قسمت Refers to که در این فایل نمونه توضیحی محدوده زیر میباشد.

          کد PHP:
          =$J$2:INDEX($J$2:$J$33;MAX($I$2:$I$33);1
          و در آخر یک کد کوتاه vba رو باید در قسمت کد نویسی شیتی که combo box در آن قرار داره بنویسید.

          کد:
          [I][COLOR=#0000FF]Private Sub ComboBox1_Change()[/COLOR][/I]
          [I][COLOR=#0000FF]ComboBox1.ListFillRange = "DropDownList"[/COLOR][/I]
          [I][COLOR=#0000FF]Me.ComboBox1.DropDown[/COLOR][/I]
          [I][COLOR=#0000FF]End Sub[/COLOR][/I][LEFT]
          [/LEFT]
          منابع مورد استفاده در نمونه فایل ارسالی پیوست گردید.
          موفق باشید.
          فایل های پیوست شده
          [SIZE=7][B][COLOR=navy][FONT=IranNastaliq]ای برادر تو همه اندیشه ای[/FONT][/COLOR][/B][/SIZE]

          کامنت

          • rjfri

            • 2016/08/16
            • 236
            • 44.00

            #6
            با سپاس از دوست و استاد عزیز iranweld
            چنانچه بخواهیم همین امر در کل ردیفها انجام بشه به چه صورت باید عمل کرد
            در فایل ارسالی شما تنها برای ردیف 2 عملی میباشد
            لطفا راهنمایی بفرمایید
            با سپاس مجدد

            کامنت

            • iranweld

              • 2015/03/29
              • 3341

              #7
              با سلام

              کدهای فایل را برای سرچ اصلاح کنید

              کد PHP:
              Sub TEST()

              Dim CELLXXRNG As Range

              Z1 
              Sheet1.Cells(Sheet1.Rows.Count"A").End(xlUp).Row

              Z2 
              Sheet1.Cells(Sheet1.Rows.Count"H").End(xlUp).Row

              Sheet1
              .Range("H2:H" Z2).ClearContents

              Sheet2
              .Range("b2").ClearContents

              2

              XX 
              Sheet2.Range("A2").Value

              Set RNG 
              Sheet1.Range("A2:f" Z1)

              For 
              Each CELL In RNG

              If InStr(CELLXX) = 1 Then

              Sheet1
              .Range("H" K) = CELL

              1

              End 
              If

              Next

              Sheet2
              .Range("b2") = Sheet1.Range("H2")

              End Sub 
              فایل های پیوست شده

              کامنت

              • rjfri

                • 2016/08/16
                • 236
                • 44.00

                #8
                سپاسگزارم

                کامنت

                • rjfri

                  • 2016/08/16
                  • 236
                  • 44.00

                  #9
                  استاد عزیز منظورم اینه که در شیت 4 و در سلولی که عملیات سرچ انجام میشه اگر بخواهیم در یک تیبل و برای سطرهای مختلف اتفاق بیوفته چه تغییراتی در کدهای ارسالی شما باید انجام داد. بعبارتی جدولی داریم که یک ستون آن دارای منوی کشویی است و بخواهیم اسامی را برای هر سر انجام دهیم. مانند فایل پیوست
                  فایل های پیوست شده

                  کامنت

                  • حسن فتاحی
                    • 2018/09/01
                    • 1

                    #10
                    با سلام
                    فیلم آموزشی در این خصوص موجود نیست؟

                    کامنت

                    • amir101
                      • 2019/04/17
                      • 2

                      #11
                      نوشته اصلی توسط amir_ts
                      با سلام

                      همانطور که استاد ارجمند جناب jansiz hayat فرمودند در حالت لیست کشویی این امکان وجود نداره ولی با استفاده از combo box و ستون کمکی میشه به نتیجه دلخواه شما رسید.

                      نمونه فایل رو مشاهده کنید.

                      سلام . فایلتون خیلی بدرد من خورد . میشه بگید چطوری میتونم این جستجو رو همزان واسه ستون های دیگه هم اعمال کنم . مثلا توی کد ملی و متراژ و ...

                      کامنت

                      • amir101
                        • 2019/04/17
                        • 2

                        #12
                        من ستون هام به این شکلیه .
                        نام محصول / ابعاد / وزن :
                        قالب /100/ 3
                        قالب /150/ 4
                        قالب/170 / 6
                        و این ستون ها ممکنه دارای نام های مشابه باشه و موقع سرچ مشخص نمیشه
                        راهی داره موقع سرچ مثلا داده قالب رو وارد کردم مشخص بشه چند ردیف مشابه وجود داره و بشه یکیشو انتخاب کرد

                        کامنت

                        چند لحظه..