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 ثابتی است که می توان آنها را نیز با تعریف متغیر ها ، متغیر کرد(فعلاً اینو داشته باشین).
یکی از مشکلاتی که در استفاده از 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 ثابتی است که می توان آنها را نیز با تعریف متغیر ها ، متغیر کرد(فعلاً اینو داشته باشین).