نمایش CommandButton با انجام فیلتر (با event فیلتر)

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

    • 2013/12/13
    • 74

    نمایش CommandButton با انجام فیلتر (با event فیلتر)

    سلام دوستان
    من در فایل پیوست به ماکرویی احتیاج دارم که در صورت فیلتر کردن هر کدام از ستون ها دکمه CommandButton1 ظاهر شود و اگر هیچ ستونی فیلتر نباشد این دکمه قابل رویت نباشد

    ممنون

    namayesh button ba anjame filter.xlsx
  • majid_mx4

    • 2012/06/25
    • 699

    #2
    با سلام

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

    خلاصه : نمایش دکمه بعد از فیلتر و مخفی شدن آن بعد از برداشتن فیلتر

    با تشکر میر
    فایل های پیوست شده

    کامنت

    • hs208

      • 2013/12/13
      • 74

      #3
      با سلام خدمت شما دوست عزیز
      جناب majid_mx4 من نتونستم از کد نوشته شده در فایل ارسالی شما استفاده کنم (البته باید بگم که من زیاد برنامه نویسی بلد نیستم)
      ولی روی فایل ارسالی شما امتحان کردم وقتی که یک ستون رو فیلتر میکنم دکمه commandButton1 ظاهر نمیشه
      آیا میدونید مشکل کجاست؟

      کامنت

      • panahi88

        • 2014/10/14
        • 33

        #4
        نوشته اصلی توسط hs208
        با سلام خدمت شما دوست عزیز
        جناب majid_mx4 من نتونستم از کد نوشته شده در فایل ارسالی شما استفاده کنم (البته باید بگم که من زیاد برنامه نویسی بلد نیستم)
        ولی روی فایل ارسالی شما امتحان کردم وقتی که یک ستون رو فیلتر میکنم دکمه commandButton1 ظاهر نمیشه
        آیا میدونید مشکل کجاست؟
        سلام
        فایل ارسالی آقای میر درسته
        بعد از فیلتر روی صفحه کلیک کن buttom ظاهر میشه

        کامنت

        • hs208

          • 2013/12/13
          • 74

          #5
          با سلام خدمت آقای پناهی و آقای میر

          بله آقای پناهی همونطور که گفتید با کلیک بر روی صفحه دکمه نمایان میشود

          ولی اگه امکان داره من میخوام این کد طوری باشه که به محض انجام فیلتر (بدون کلیک بر روی صفحه ) دکمه نمایان بشه

          آخه توی فایل اصلی من بعد از انجام فیلتر باید تغییراتی توی بعضی مقادیر اعمال بشه

          میخوام این ظاهر شدن دکمه به نوعی به کاربر هشدار بده که باید با فشردن دکمه بروزرسانی انجام بشه

          آیا امکانش هست ؟

          کامنت

          • hs208

            • 2013/12/13
            • 74

            #6
            برای واضح تر شدن موضوع فایل قبلی رو با یه کم تغییر مجدد پیوست کردم

            توی فایل توضیح دادم که باید بعد از انجام فیلتر شماره ردیف ها مجددا مرتب بشه (بروزرسانی بشه) چون همونطور که دیده میشه شماره ها 1،3،6،8 و الی آخر شده ، که باید 1،2،3،4،5 و الی آخر شود

            اگر امکان داشته باشه به محض انجام فیلتر (بدون کلیک بر روی صفحه) دکمه ظاهر بشه عالیه

            یا اینکه موارد بروزرسانی (مثل مرتب شدن شماره های ردیف) خودش به محض انجام فیلتر انجام بشه یعنی دیگه اصلا نیازی به دکمه و فشردن اون نباشه که بخواد ظاهر بشه


            ممنون


            namayesh button ba ye kam tagheer.xlsm

            کامنت

            • abootorab

              • 2014/10/17
              • 351

              #7
              نوشته اصلی توسط hs208
              برای واضح تر شدن موضوع فایل قبلی رو با یه کم تغییر مجدد پیوست کردم

              توی فایل توضیح دادم که باید بعد از انجام فیلتر شماره ردیف ها مجددا مرتب بشه (بروزرسانی بشه) چون همونطور که دیده میشه شماره ها 1،3،6،8 و الی آخر شده ، که باید 1،2،3،4،5 و الی آخر شود

              اگر امکان داشته باشه به محض انجام فیلتر (بدون کلیک بر روی صفحه) دکمه ظاهر بشه عالیه

              یا اینکه موارد بروزرسانی (مثل مرتب شدن شماره های ردیف) خودش به محض انجام فیلتر انجام بشه یعنی دیگه اصلا نیازی به دکمه و فشردن اون نباشه که بخواد ظاهر بشه


              ممنون


              [ATTACH]6234[/ATTACH]
              با درود
              ضمن تشکر از جناب majid_mx4، دوست عزیز چون واسه عمل فیلتر رویدادی وجود نداره نمیشد به راحتی و اصولی کدی رو برای خواسته شما نوشت اما با ترفندی این کد رو واستون نوشتم (به عبارتی ایجاد رویداد مجازی). در واقع این کد، عمل فیلتر کردن شما رو در هر لحظه تحت کنترل قرار میده و به محض اعمال فیلتر یا تغییری در آن خواسته شما رو یعنی ردیف کردن موارد فیلتر شده به ترتیب از عدد 1 الی آخر بدون فشردن کلید یا عمل خاصی واستون انجام میده.
              فایل ضمیمه رو چک کنید اگر مشکلی بود در خدمتم، امیدوارم تونسته باشم مشکل شما رو حل کنم.
              فایل های پیوست شده

              کامنت

              • abootorab

                • 2014/10/17
                • 351

                #8
                نوشته اصلی توسط abootorab
                با درود
                ضمن تشکر از جناب majid_mx4، دوست عزیز چون واسه عمل فیلتر رویدادی وجود نداره نمیشد به راحتی و اصولی کدی رو برای خواسته شما نوشت اما با ترفندی این کد رو واستون نوشتم (به عبارتی ایجاد رویداد مجازی). در واقع این کد، عمل فیلتر کردن شما رو در هر لحظه تحت کنترل قرار میده و به محض اعمال فیلتر یا تغییری در آن خواسته شما رو یعنی ردیف کردن موارد فیلتر شده به ترتیب از عدد 1 الی آخر بدون فشردن کلید یا عمل خاصی واستون انجام میده.
                فایل ضمیمه رو چک کنید اگر مشکلی بود در خدمتم، امیدوارم تونسته باشم مشکل شما رو حل کنم.
                همچنین از یک روش ساده تر و کوتاه تر نیز میتونید به خواستتون برسید، فقط در این روش باید در شیتی که جدول و فیلتر دارید (مثلا Sheet1) حداقل یک فرمول در یکی از سلول ها داشته باشید اما اگر فرمولی نداربد کافیه یک سلولی که مورد استفاده ندارین رو فرمول دار کنید، به عنوان مثال بنده در فایل ضمیمه در سلول M1 (یا هر سلول دلخواه و غیر قابل استفاده شما) فرمول CLEAN(M2)= استفاده کردم که اگر M2 خالی باشه مقداری هم نشون نمیده و در نهایت روی شیت (Sheet1) راست کلیک و سپس View Code رو بزنید و در پنجره vb باز شده کد زیر رو کپی کنید.
                کد PHP:
                Private Sub Worksheet_Calculate()
                    
                Dim ULC As Range
                    Set ULC 
                Range("A1")
                    
                radif 1
                    
                For Each area In ULC.CurrentRegion.SpecialCells(xlVisible).Areas
                        r 
                area.Row
                        ra 
                area.Rows.Count
                        
                If 1 Then
                            
                For 2 To ra
                                Cells
                (i1) = radif
                                radif 
                radif 1
                            Next i
                        
                Else
                            For 
                r To ra 1
                                Cells
                (i1) = radif
                                radif 
                radif 1
                            Next i
                        End 
                If
                    
                Next
                End Sub 
                فایل های پیوست شده

                کامنت

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

                  • 2013/01/17
                  • 1198
                  • 84.00

                  #9
                  ba drod
                  hamontor ke doste aziz goftan komak gereftan az event sheet calculation mitone beheton komak kone. man pishnahadam ine ke dota formol bezarim yeki subtotal count ke selolhaye filtero mishmare va yeki counta masalam. hla age subtotal count az count ma kochektar bashe yani filter darim va sepas
                  code sheet1.commondbotton1.visible=true
                  ro hamrahe ba ye if to darto ke hamino false kone
                  kare shomaro anjam mide
                  Albate check mkardam anjam shde ama zahmatesh miofte gardane khodeton ke ta ye jaro pish berin
                  در پناه خداوندگار ایران زمین باشید و پیروز

                  کامنت

                  • majid_mx4

                    • 2012/06/25
                    • 699

                    #10
                    با سلام

                    ضمن تشکر از تمامی دوستان بخصوص جناب آقای abootorab و حناب آقای اسماعیلی یک فایل نمونه اتونامبر با فرمول ضمیمه کردم


                    شاید بکارتان بیاید.

                    خلاصه : شماره سریال ردیف ها و مرتب بودن سریال بعد از فیلتر

                    با تشکر میر
                    فایل های پیوست شده

                    کامنت

                    • abootorab

                      • 2014/10/17
                      • 351

                      #11
                      نوشته اصلی توسط امين اسماعيلي
                      ba drod
                      hamontor ke doste aziz goftan komak gereftan az event sheet calculation mitone beheton komak kone. man pishnahadam ine ke dota formol bezarim yeki subtotal count ke selolhaye filtero mishmare va yeki counta masalam. hla age subtotal count az count ma kochektar bashe yani filter darim va sepas
                      code sheet1.commondbotton1.visible=true
                      ro hamrahe ba ye if to darto ke hamino false kone
                      kare shomaro anjam mide
                      Albate check mkardam anjam shde ama zahmatesh miofte gardane khodeton ke ta ye jaro pish berin
                      با درود
                      ضمن تشکر و کسب اجازه از جناب اسماعیلی عزیز، فک کنم هدف اصلی دوستمون جهت مرئی و نامرئی کردن کلید (CommandBotton1) این بود که: با اعمال فیلتر بصورت اتوماتیک کلید ظاهر بشه تا کاربر با دیدن این کلید و فشردن آن سطرهای مانده از عمل فیلتر را به ترتیب از 1 الی آخر شماره گذاری بشه و احتمالا هدف دیگه از قرار دادن این کلید نداشتن که در 2 پست آخری که گذاشتم این عمل شماره گذاری به ترتیب پس از اعمال فیلتر به صورت خودکار و بدون هیچ عمل اضافه ای انجام میشه و دیگه به نظر بنده نیاز به این کلید ندارن که بخواد ظاهر یا مخفی بشه.
                      البته تا نظر جناب hs208 چی باشه؟
                      بازم ممنون

                      کامنت

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

                        • 2013/01/17
                        • 1198
                        • 84.00

                        #12
                        ba drod
                        mibakhshid dige dast be farsi man inja ba moshkel movajeh hastesh
                        file zire ro goftam bad nist ye negahi bendazi, shayad khoshet omad.
                        فایل های پیوست شده
                        در پناه خداوندگار ایران زمین باشید و پیروز

                        کامنت

                        • hs208

                          • 2013/12/13
                          • 74

                          #13
                          سلام
                          با تشکر از همه دوستان آقایان میر ، ابوتراب و اسماعیلی باید عرض کنم که همه کدها عالی بودن و به یه نوعی به دردم خوردن و مشکلم همه جوره حل شد

                          احسنت ، احسنت و هزار احسنت بر شما اساتید

                          ممنون ممنون ممنون

                          کامنت

                          چند لحظه..