سورت كردن ليست Validation

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • arsalan135

    • 2013/11/10
    • 64
    • 58.00

    سورت كردن ليست Validation

    با سلام خدمت دوستان
    فرض كنيد ليستي داريم كه از آن در Data Validation استفاده مي كنيم. اين ليست بعنوان مثال ليست كالا مي باشد( كه در شيت ديگري وجود دارد ) زماني كه در سلول مذكور قصد داريم از ليست كشويي كه باز مي شود كالاي مورد نظر را انتخاب كنيم ، ليست كشويي دقيقا به ترتيب رديفها مي باشد نه براساس مثلا حروف الفبا . چنانچه بخواهيم ليست درون ليست كشويي بصورت نزولي يا صعودي باشد چه راه حلي پيشنهاد مي دهيد.؟
    اينكه ليست كالاها را با ابزار filter مرتب كنيم يك راه حل است. مشكلي كه هست اينكه ليست كالا مرتب در حال افزايش و يا تغيير مي باشد. آيا بغير از اين روشي مي شناسيد ؟
    ممنون
  • امين اسماعيلي
    مدير تالار ويژوال بيسيك

    • 2013/01/17
    • 1198
    • 84.00

    #2
    با درود

    ممکنه راه های دیگه ای هم وجود داشته باشه اما من این راه ها رو به نظرم میاد
    1- با کد نویسی مثلا هر وقت اون شیت که لیست کشویی توش هست فعال بشه اون لیست داده هات sort بشن
    2- استفاده از ستون کمکی و سورت کردن اون داده ها و سپس از اون لیست تهیه کنید
    3-ساختن یک pivot table از اون لیست چون سل های خالی رو براتون نمیاره تکراری ها رو حذف میکنه و سورت میکنه خودکار و کمک از نام گذاری define name محدوده مورد نظر در pivot و در اخر data validation با استفاده از اون نامی که واسه محدوده دادیم . فقط اگر داده ها اظافه و تغییر میکنن باید table ما رفرش بشه
    در پناه خداوندگار ایران زمین باشید و پیروز

    کامنت

    • AmirAkbar

      • 2014/02/06
      • 118

      #3
      اگه حجم کاری خیلی بالاست و دیگه دو سه کلیک برای سورت یه ستون یا دیتابیس خیلی وقتگیره باید یا کامند باتن بذارید و کد لازم رو براش بنویسید یا کد رو تو خاصیت ترک شیت سورس
      کد:
      Worksheet_Deactivate()
      بذارید
      البته بنظر من ...!!

      کامنت

      • امين اسماعيلي
        مدير تالار ويژوال بيسيك

        • 2013/01/17
        • 1198
        • 84.00

        #4
        با درود
        من یه چند نمونه میزارم ببین به کارت میان از همون موارد بالا :
        فایل های پیوست شده
        در پناه خداوندگار ایران زمین باشید و پیروز

        کامنت

        • امين اسماعيلي
          مدير تالار ويژوال بيسيك

          • 2013/01/17
          • 1198
          • 84.00

          #5
          واسه اپدیت پیویت من با vba انجام دادم چون بغیر از اون قسمت option خود pivot table که در هنگام باز شدن ورک بوک خودکار اپدیتش میکنه من راهی رو بدون Vba بلد نبودم بقیه راه ها دستی بودن
          در پناه خداوندگار ایران زمین باشید و پیروز

          کامنت

          • AmirAkbar

            • 2014/02/06
            • 118

            #6
            نوشته اصلی توسط امين اسماعيلي
            با درود
            من یه چند نمونه میزارم ببین به کارت میان از همون موارد بالا :
            با تشکر ... در فایل sort vba.xls ، تو قسمت بدنه کد ماکرو اصلاح کوچکی لازمه :

            کد:
            Range("E2:E20").Select
                Selection.Sort Key1:=Range("E1"), Order1:=xlAscending, Header:=xlGuess, _
                    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
                    DataOption1:=xlSortNormal

            کامنت

            چند لحظه..