[[20181018143338]] 『マクロを使用して別ブックの集計表(カレンダータ』(seitomo) ページの最後に飛ぶ

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

 

『マクロを使用して別ブックの集計表(カレンダータイプ)へコピペ』(seitomo)

Book1の「集計」シートから、Book2の「日報」シートへ
データをコピペしたいのですが、幾つか条件がございます。

【Book1-集計】

   A    B   C   D    E    F
1 10/18
2 (商品名) (A店) (B店)   (他商品) (個数) 
3 バナナ   1   4      雑貨    5
4 みかん   6   5      家電    4
5 イチゴ   1   2      書籍    5
6 りんご   5   4

※A〜C列の内容は日ごとに変わり、行数も変動します。
※E列の項目は固定でF列の数だけ変わります

【Book2-日報】

   B    (C-S:計算式)   T  U  ・・・  BB  BC    
3                 10/1       10/18
4               (A店) (B店) (A店) (B店)

5 -ダミー   -ダミー -ダミー

   ← ここに行の挿入5行目をコピペし商品名「バナナ」を追加

3 りんご    5 4
4 イチゴ    1 2
5 みかん    6 5
6 (他商品)(個数) (他商品)(個数)
7 雑貨    雑貨   5
8 家電 家電   4
9 書籍 書籍   5

※T3から右方向へ日付が連続して入っています(隣どおしで結合)
※5行目は関数が入ったダミーとなっています

《自動化したい内容》
Book1の商品名がBook2のB列に存在する場合は、Book1のA1にある日付である
Book2のBB&BC列に「A店、B店」の数字をコピペします。

BooK2に商品名が存在しない場合は、5行目の下に行を挿入し5行目をコピペ
した上で、商品名をB列に貼り付けし、BB&BC列に「A店、B店」の数字をコピペします。

Book1のF3:F6の数字もBook2の同じ日付の下にコピペしたいのですが、行を挿入した
事により都度行数が変動してしまします。
※この部分への貼り付けは、手動でも可能なので無視していただいても結構です。

かなり条件の多い内容で申し訳ありませんが、上記内容のマクロの構築に関して
ご教示いただけると幸いでございます。

よろしくお願いいたします。

 

< 使用 Excel:Excel2007、使用 OS:Windows7 >


【Book2-日報】
   B    (C-S:計算式)   T  U  ・・・  BB  BC    
3                 10/1        10/18
4               (A店) (B店)    (A店) (B店)
5 -ダミー           -ダミー       -ダミー
   ← ここに行の挿入5行目をコピペし商品名「バナナ」を追加
3 りんご                      5  4
4 イチゴ                      1  2
5 みかん                      6  5
6               (他商品)(個数)   (他商品)(個数)
7                雑貨        雑貨   5
8                家電        家電   4
9                書籍        書籍   5
(seitomo) 2018/10/18(木) 16:01

【Book2-日報】のレイアウトが崩れていた為、再書き込みいたしました。
(seitomo) 2018/10/18(木) 16:16

 本題とは関係ないが。
 書き込む際に頭に半角のスペースを入れると書き込んだとおりに表示される。

あ あ

 あ   あ
 上記は二つとも書き込む際に半角スペース3文字開けている。
(ねむねむ) 2018/10/18(木) 16:19

(ねむねむ)様
ご指摘ありがとうございます。
今後注意いたします。
(seitomo) 2018/10/18(木) 16:40

Sub main()
    Dim r As Range, rr As Range, c As Range
    Set r = Sheets("Sheet2").Rows(2).Find(Sheets("Sheet1").Range("A1").Value, , , xlWhole)
    For Each c In Sheets("Sheet1").Range("A3:A" & Rows.Count).SpecialCells(2)
        Set rr = Sheets("Sheet2").Range("A:A").Find(c.Value, , , xlWhole)
        If rr Is Nothing Then
            Sheets("Sheet2").Rows(6).Insert Shift:=xlDown
            Sheets("Sheet2").Range("A6").Value = c.Value
            Sheets("Sheet2").Cells(6, r.Column).Resize(, 2).Value = c.Offset(, 1).Resize(, 2).Value
        Else
            Sheets("Sheet2").Cells(rr.Row, r.Column).Resize(, 2).Value = c.Offset(, 1).Resize(, 2).Value
        End If
    Next c
End Sub
(mm) 2018/10/18(木) 17:08

(mm)様

教示いただき誠にありがとうございます。

Ifセクション「Else」の後で下記のようなエラーが表示されました。

「オブジェクト変数または With ブロック変数が設定されていません」

自力で該当する箇所を探してみましたが、エラー原因が不明の状況です。

浅学で大変申し訳ございません。
解決策ご教示のほど、よろしくお願い申し上げます。
(seitomo) 2018/10/18(木) 17:40


[[20181012142612]]『『重複データ複数条件の集計その2』』(seitomo)

 こっちはどうなったのかな?
(seiya) 2018/10/18(木) 18:11

コメント返信:

[ 一覧(最新更新順) ]


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