PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : refresh کردن خودکار Pivot table از طریق ماکرو



Javid Mokhtari
2012/01/24, 20:41
با سلام.
یکی از مشکلاتی که در استفاده از Pivot table داریم این است که با هر بار ویرایش یا افزودن اطلاعات یا هر تغییر دیگر در محتویات منبع Pivot table ، آن تغییرات همزمان در Pivot table به روز آوری نمی شود و باید بصورت دستی Refresh شود تا تغییرات در Pivot table اعمال گردد.
و در گزارش گیری ممکن است Refresh کردن Pivot table از یادمان برود و به روز آوری دستی کار اعصاب خورد کنی است. اما می توان با کمک گرفتن از برنامه نویسی این مشکل رو حل کرد به مثال زیر توجه کنید :

فرض کنید یک شیت به نام sheet1 داریم که در آن : ردیف - نام - نام خانوداگی و سن افراد را نوشته ایم.حال ما از این اطلاعات افراد یک گزارش پویا به صورت pivot table (به نام Pivot table1) در شیتی به نام sheet4 ایجاد کرده ایم.حال اگر بخواهیم Pivot table موجود در sheet4 با هر بار باز شدن این شیت، Pivot table به صورت خودکار به روز رسانی شود ، می شود کد زیر را نوشت :

Private Sub Worksheet_Activate()
PivotTables("PivotTable1").PivotCache.Refresh
End Sub

یا می توان آن را به یک CommandButton1 اختصاص داد :

Private Sub CommandButton1_Click()
Application.Sheets("sheet4").PivotTables("PivotTable1").PivotCache.Refresh
End Sub

البته کد های بالا برای sheet و Pivot table ثابتی است که می توان آنها را نیز با تعریف متغیر ها ، متغیر کرد(فعلاً اینو داشته باشین).

neda-a
2015/07/16, 00:05
ممنون از راهنمایی خوبتون فقط یه سوال من این ماکرو را نوشتم و اجرا هم شد اما وقتی فایلم را روی سیستم دیگه ای باز میکنم ماکرو کار نمیکنه چرا؟

misammisam
2015/07/16, 00:12
با سلام
احتمالا اجرای ماکروهای شما در سیستم مورد نظرتون بسته است باید اجازه اجرا به ماکروها بدید ، از مسیر زیر :
Excel Options/Trust Center/Turust Center Settings/Macro Settings/Enable all macros
باید این گزینه رو فعال و ok کنید .

neda-a
2015/07/20, 11:20
تنظیماتی که گفته بودید را انجام دادم ,ولی بازم روی سیستم های دیگه انجام نشد حتما من یه جایی اشتباه انجام میدم- خیلی با ماکرونویسی آشنا نیستم
روند کاری که انجام دادم اینه
-DEVELOPER-insert- command button-writing code-save
ممنون میشم راهنمایی کنید

misammisam
2015/07/20, 17:08
امکانش هست فایلتونو اینجا بزارید تا بررسی کنیم .

iranweld
2015/07/20, 22:19
تنظیماتی که گفته بودید را انجام دادم ,ولی بازم روی سیستم های دیگه انجام نشد حتما من یه جایی اشتباه انجام میدم- خیلی با ماکرونویسی آشنا نیستم
روند کاری که انجام دادم اینه
-DEVELOPER-insert- command button-writing code-save
ممنون میشم راهنمایی کنید

با سلام

بایستی نام شیت ها با نام شیت های تعریف شده در ماکرو با هم یکی باشد در صورت ایجاد دو جدول pivot table در یک شیت یا شیت دیگر دستور داخل ماکرو برای pivot table دوم نیز بایستی تعریف گردد


7844

neda-a
2015/07/21, 09:15
خیلی ممنون عالی بود حل شد فکر کنم اشکال من این بود اولا کد را در شیتی که خود جدول pivot بود مینوشتم بعدم احتمالا با فرمت xlsm ذخیره نمیکردم . این دو مورد را تغییر دادم و درست شد.
مرســـــــی:min1:

mina_tmba
2015/08/15, 18:23
سلام. من یک ورک شیت دارم که از جدولش یک pivottable گرفتم ولی وقتی یک سطر اطلاعات جدید به داده هام اضافه میکنم، حتی با رفرش کردن هم اطلاعات جدیدم در pivottable بروز نمیشه. میتونید لطفا کمکم کنید؟

iranweld
2015/08/15, 19:46
با سلام
لطفا نمونه فایل خود را ضمیمه کنید تا بررسی شود

abolfazl861
2016/08/18, 12:37
سلام
من یه اکسل دارم که دارای تعداد زیادی tabel که از روی اون ها چندین Pivot table تشکیل می شه که نمونه پیوست کمکم نمی کنه و بهش هم خیلی احتیاج دارم تا مدام رفرش بشه خواهشن کمکم کنید

amir_ts
2016/08/18, 13:11
با سلام
دو روش رو امتحان کنید.


ActiveWorkbook.RefreshAll


Sub AllWorkbookPivots()

Dim pt As PivotTable
Dim ws As Worksheet

For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
pt.RefreshTable
Next pt
Next ws

End Sub