به روز شدن خودکار pivot table در شیت قفل شده

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

    • 2014/10/14
    • 33

    به روز شدن خودکار pivot table در شیت قفل شده

    با سلام و عرض ادب خدمت سروران گرامی
    دوستان چطور میشه وقتی روی یک شیت که دارای pivot table است کلیک کنیم ، pivot table به صورت خود کار آپدیت شود.
    من قبلا از این کد استفاده میکردم و جواب هم میداد:
    کد:
    Private Sub Worksheet_Activate()
    PivotTables("search").PivotCache.Refresh
    End Sub
    ولی الان هم شیت دارای پسورد هست و هم فایل اکسل مرجع اطلاعات.
    ممنون از همگی...
  • khakzad

    • 2010/03/17
    • 2034
    • 85.00

    #2
    اول کدتونunprotect کنید
    بعد رفرش کنید
    بعد protect
    [CENTER][B][COLOR=#008000][SIZE=3]محصولات و جزوات آموزش تخصصی [URL="https://excelpedia.net/"]اکسل[/URL] در:

    [URL="https://excelpedia.net/category/excel-functions/"]برترین مرجع تخصصی پارسی اکسل[/URL]
    [URL="http://www.exceliran.com/shop/"]جامعه اكسل ايرانيان: فروشگاه[/URL][/SIZE][/COLOR][/B]
    :wcom:

    [B][URL="https://excelpedia.net/"]آموزش اکسل تخصصی[/URL] و [URL="https://excelpedia.net/excel-ninja/"]پیشرفته[/URL] - [URL="https://excelpedia.net/"]تهران[/URL][/B]
    [EMAIL="h.khakzad@yahoo.com"]h.khakzad@yahoo.com[/EMAIL]
    [/CENTER]

    کامنت

    • panahi88

      • 2014/10/14
      • 33

      #3
      نوشته اصلی توسط khakzad
      اول کدتونunprotect کنید
      بعد رفرش کنید
      بعد protect
      خیلی ممنون جناب خاکزاد
      برای unprotect کردن شیت زیاد مشکلی ندارم ولی بعد از unprotect کردن شیت و بعد از refresh کردن اطلاعات pivot table از فایل اکسلی که توی سرور هست خونده میشه و فایل برای خوانده شدن احتیاج به پسورد داره
      ممنون میشم کمی بیشتر راهنمایی کنید.

      کامنت

      • khakzad

        • 2010/03/17
        • 2034
        • 85.00

        #4
        داخل کدتون، اول از همه یکبار unprotect کنید
        بعد هر کدی که دارین اجرا کنید
        اینطوری بصورت دستی لازم نیست پسورد شیت رو بزنید
        اول کدتون بنویسید:
        کد:
        Sheet1.Unprotect (123)
        [CENTER][B][COLOR=#008000][SIZE=3]محصولات و جزوات آموزش تخصصی [URL="https://excelpedia.net/"]اکسل[/URL] در:

        [URL="https://excelpedia.net/category/excel-functions/"]برترین مرجع تخصصی پارسی اکسل[/URL]
        [URL="http://www.exceliran.com/shop/"]جامعه اكسل ايرانيان: فروشگاه[/URL][/SIZE][/COLOR][/B]
        :wcom:

        [B][URL="https://excelpedia.net/"]آموزش اکسل تخصصی[/URL] و [URL="https://excelpedia.net/excel-ninja/"]پیشرفته[/URL] - [URL="https://excelpedia.net/"]تهران[/URL][/B]
        [EMAIL="h.khakzad@yahoo.com"]h.khakzad@yahoo.com[/EMAIL]
        [/CENTER]

        کامنت

        • panahi88

          • 2014/10/14
          • 33

          #5
          نوشته اصلی توسط panahi88
          خیلی ممنون جناب خاکزاد
          برای unprotect کردن شیت زیاد مشکلی ندارم ولی بعد از unprotect کردن شیت و بعد از refresh کردن اطلاعات pivot table از فایل اکسلی که توی سرور هست خونده میشه و فایل برای خوانده شدن احتیاج به پسورد داره
          ممنون میشم کمی بیشتر راهنمایی کنید.
          درسته
          من منظورم این نبود که دستی Unprotect کنم
          با کد زیر مراحل درست انجام میشه
          کد:
          Private Sub Worksheet_Activate()
          Sheet2.Unprotect (123)
          PivotTables("PivotTable2").PivotCache.Refresh
          Sheet2.Protect (123)
          End Sub
          مشکل اینجاست که موقع refresh اطلاعات از فایل دیگه ای خونده میشه که پسورد اون اکسل "ABC" هست.
          و آدرس اون هم توی شبکه است (\\192.168.2.201\)
          اینجا پسورد فایل رو ازم میپرسه
          با چه دستوری میشه این مرحله رو رد کرد؟
          امیدوارم منظورم رو رسونده باشم

          کامنت

          • panahi88

            • 2014/10/14
            • 33

            #6
            بزرگواران پیشنهادی ندارید؟

            کامنت

            • Ali Parsaei
              مدير تالارتوابع اکسل

              • 2013/11/18
              • 1522
              • 71.67

              #7
              بايد يک خط به کدتون اضافه کنيد که اون فايل رو هم باز کند مثلا" اگر فايل مرجع به نام TEST و روي درايو C باشد و رمزش هم ABC باشد کد به صورت زير خواهد بود:
              کد:
              Workbooks.Open Filename:="C:\TEST.XLSX", Password:="ABC"
              براي آدرس شبکه
              192.168.2.201 نمي دانم چطور مي شود، ولي يک کم روش کار کنيد فکر کنم بتوانيد درستش کنيد.
              [SIGPIC][/SIGPIC]

              کامنت

              • panahi88

                • 2014/10/14
                • 33

                #8
                نوشته اصلی توسط علي پارسا
                بايد يک خط به کدتون اضافه کنيد که اون فايل رو هم باز کند مثلا" اگر فايل مرجع به نام TEST و روي درايو C باشد و رمزش هم ABC باشد کد به صورت زير خواهد بود:
                کد:
                Workbooks.Open Filename:="C:\TEST.XLSX", Password:="ABC"
                براي آدرس شبکه
                192.168.2.201 نمي دانم چطور مي شود، ولي يک کم روش کار کنيد فکر کنم بتوانيد درستش کنيد.
                با تشکر از راهنمایی شما جناب پارسا
                با کد زیر مشکل تقریبا حل شد:
                کد:
                Private Sub Worksheet_Activate()
                Sheet2.Unprotect (123)
                Workbooks.Open Filename:="\\192.168.2.199\Vendor List\Report.XLSX", Password:="ABC"
                PivotTables("PivotTable2").PivotCache.Refresh
                Workbooks("Report.XLSX").Close SaveChanges:=False
                Sheet2.Protect (123)
                End Sub
                با این کار اکسل report یک بار باز میشه و اطلاعات داخلش خونده میشه و دوباره بدون save بسته میشه
                اما همین باز شدن فایل reprot و اینکه کاربر فایل رو مشاهده میکنه زیاد جال نیست.
                اگر راهی وجود داره که فایل اکسل موقع باز شدن دیده نشه (مثل زمانی که بصورت دستی به روزرسانی انجلم میشه) لطفا راهنمایی بفرمایید.
                در غیر اینصورت که تیک حل شد را به موضوع بزنم.

                کامنت

                • mohamadali110

                  • 2014/03/17
                  • 151
                  • 70.00

                  #9
                  اين كدو به انتهاي كداتون اضافه كنين حل ميشه


                  کد:
                    Application.ScreenUpdating=False
                  براي كد قبل هم نيازي به پسورد وارد كردن نبود اگه از كد زير استفاده ميكردين

                  کد:
                  Application.DisplayAlerts = False

                  کامنت

                  • panahi88

                    • 2014/10/14
                    • 33

                    #10
                    من در نهایت یه button درست کردم با کد زیر و مشکام حل شد:
                    با تشکر فراوان از دوستان

                    کد:
                    Sub Update_me()
                    Sheet1.Unprotect (123)
                    Application.StatusBar = "Please be patient..."
                    Application.ScreenUpdating = False
                    Workbooks.Open Filename:="\\192.168.2.199\Vendor List\Report.XLSX", ReadOnly:=True, Password:="ABC"
                    Workbooks("New.xlsm").Activate
                    Worksheets("vendor").Activate
                    ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
                    Workbooks("Report.XLSX").Close SaveChanges:=False
                    Application.StatusBar = " items done."
                    Sheet1.Protect (123)
                    End Sub
                    باز اگه کد قابل اصلاح بود حتما بفرمایید...

                    کامنت

                    • Ali Parsaei
                      مدير تالارتوابع اکسل

                      • 2013/11/18
                      • 1522
                      • 71.67

                      #11
                      فکر کنم فقط يک چيز کم دارد، دست آخر دوباره بايد ScreenUpdating را فعال کنيد، يعني:
                      کد:
                      Application.ScreenUpdating = True
                      [SIGPIC][/SIGPIC]

                      کامنت

                      • Ali Parsaei
                        مدير تالارتوابع اکسل

                        • 2013/11/18
                        • 1522
                        • 71.67

                        #12
                        نوشته اصلی توسط mohamadali110

                        براي كد قبل هم نيازي به پسورد وارد كردن نبود اگه از كد زير استفاده ميكردين

                        کد:
                        Application.DisplayAlerts = False
                        من امتحان کردم نشد، فکر کنم پسورد را حتما" بخواهد، وگرنه همه فايلهاي محافظت شده اکسل را با يک خط کد مي شد باز کرد!،
                        [SIGPIC][/SIGPIC]

                        کامنت

                        چند لحظه..