Sheet1に注文のデータを保存し、Sheet2に業者に知らせる注文表を作ってみます。
Sheet1では注文番号と枚数を縦に列挙するとします。
A B C D
1 注文番号 枚数 ヘッダ ○○表
Sheet2では縦25行に注文番号ごとに枚数を集計したものを4組作るとします。
A B C D…
1 注文番号 枚数 注文番号 枚数…
(1)ピボットを使わなくても、Sheet2のセルB2に「=SUMIF(Sheet1!$A$2:$A$5001,A2,Sheet1!$B$2:$B$5001)」を入力し、他のセルにコピーすれば集計してくれます。
(2)Sheet1のセルD1にヘッダに指定する文字を入力することにします。
VBEでSheet1のコードに次のように書きます。
Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Row = 1) And (Target.Column = 4) Then
Worksheets("Sheet2").PageSetup.CenterHeader = Range("Sheet1!D1").Value
End If
End Sub
(3)Sheet1の注文データと連動しているので、集計し直す必要はありません。消去するのはSheet1の注文データの方になります。
Private Sub ClearData()
Range("Sheet1!$A$2:$B$5001").ClearContents
End Sub
お礼
どうもありがとうございます。 おかげさまで半分くらい作業を減らすことが出来ました。 もう2点質問させてください。 1、SUMIF関数で注文ない番号の部分は0と表示されますが、 空白にする場合はどのような条件を付け加えればよいでしょうか? 2、ヘッダーの位置(左にお客様の名前、右端に常に弊社名)を決める場合、マクロではどう書けばよいでしょうか? ご指導よろしくお願いします!