[[20200221111103]] 『ピボットテーブル自動更新』(ばっさー) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ピボットテーブル自動更新』(ばっさー)

VBA初心者です。

展開 シートにピボットがあります。
データ シートに元データがあります。

展開シートに 更新ボタン(マクロ)を作っておいて
押すと データを更新するには どうしたらよいでしょうか。

データ シートの範囲は固定です(A〜BL)

以下の記述ですと ピボットだけ更新されて、
データ シートの項目が増えても 展開に反映されない状態になります。

    Dim pvt As PivotTable

    For Each pvt In ActiveSheet.PivotTables
        pvt.PivotCache.Refresh
    Next

< 使用 Excel:unknown、使用 OS:Windows10 >


元データのシートとセル範囲は何処でしょう?

まぁ、そこはご自身で確認すれば構いませんが、SourceDataプロパティがデータ範囲を示しているので、これを現状に合わせて変更してからRefreshすれば良いでしょう。
(???) 2020/02/21(金) 11:34


ありがとうございます。
元データのシート名は  データ で、セル範囲は、A〜BL です。
更新都度 、A〜BL の間で いくつかの項目が 増えたり減ったりします。
普通に手動で ピボット更新すると 増えた項目が更新されず 手動でチェックを入れなおさないといけないのがネックです。

初心者のため 項目が増えたのも含めて自動更新の記述を教えていただけないでしょうか。
よろしくお願いいたします。 
(ばっさー) 2020/02/21(金) 11:38


A列からBL列として、何行目からデータであり、どのシートに書いているのでしょう?
とりあえず、サンプルを書いてみますので、ご自身で応用してみてください。
 Sub test()
    With Sheets("Sheet2")
        .PivotTables(1).SourceData = Sheets("Sheet1").Range("A1").CurrentRegion.Address(True, True, xlR1C1, True)
        .PivotTables(1).PivotCache.Refresh
    End With
 End Sub
(???) 2020/02/21(金) 11:59

 現在のソースデータから範囲を広げる感じにしてみました。

 Sub Test_1()
    Dim pvt As PivotTable
    Dim scArea As String
    Dim shName As String
    For Each pvt In ActiveSheet.PivotTables
        shName = Split(pvt.SourceData, "!")(0)
        scArea = Sheets(shName).Range(Application.ConvertFormula(Formula:=Split(pvt.SourceData, "!")(1), _
                 fromReferenceStyle:=xlR1C1, toreferencestyle:=xlA1, toabsolute:=xlRelative)).CurrentRegion.Address(0, 0)
        pvt.ChangePivotCache ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=shName & "!" & scArea)
        pvt.PivotCache.Refresh
    Next
 End Sub
(ろっくん) 2020/02/21(金) 12:02

??? さん
ありがとうございます!!

A列からBL列として、何行目からデータであり、どのシートに書いているのでしょう?
 →説明が漏れてしまい申し訳ないです。
  A2セルからデータがあります。
  データシートに書いており、それを展開シート(ピボットがあります)に展開します。

記載いただいた記述を見て 実際にやってみます!

(ばっさー) 2020/02/21(金) 12:03


ろっくんさん

ありがとうございます!
記載いただいた記述を見ながら 実際にやってみたいと思います。
(ばっさー) 2020/02/21(金) 12:10


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.