• 締切済み

EXCEL VBAで売上日報作成

下記のような場合どのようなマクロを組めばいいか教えてください。 表(1) 日付 店舗名 売上 仕入値 客数   -------------------------------- 3/1   A   100   10   20 このような表を 表(2)(別のシート) 日付 売上  3/1  10 3/2  12 3/3 100  のように置き換えるのは出来るのですが、 例えば表(1)に3/11のデータをコピペし、シート上に マクロ実行ボタンを作り、そのボタンを押すと 表(2)に必要な部分だけを抽出かつ、日付順に並ばせる 方法を教えてください。 表(1)にデータをコピペし、ボタンを押すだけで表(2)に その日の売上が表示され、月末には一ヶ月の売上の推移を見れるような形をつくりたいのです。LOOK UP関数 などでは、表(1)に3/1の分をコピペするとその日はちゃんと表示されますが、翌日表(1)に3/2分をコピペすると3/1の上に上書きされますよね。なので、3/1の下のセルに3/2分を表示するようなマクロを教えてください。

みんなの回答

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

別ブックのデータを他のブックに蓄積させたいって事? 別ブックのいつも同じ名称のシートで、いつも同じセルに必要なデータがあると言う状態なら可能でしょう。 先の例をご自身の環境に置き換えて修正すれば良いと思います。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

サンプルを載せるのは良い事ですが、結果と合わないと見る方は混乱します。 (表(1) で 3/1 の売上は 100 なのに、表(2) では 10 など) > 表(1)に3/1の分をコピペするとその日はちゃんと表示されますが、 > 翌日表(1)に3/2分をコピペすると3/1の上に上書きされますよね。 表(1) には常に1行しか無いって意味でしょうか? 表(1) の 3/1 のデータの下に 3/2分をコピペし、翌日分は 3/2 の下にコピペ・・・ このようにデータを蓄積していき、店舗や仕入値等の列はグループ化して閉じれば、表(1)だけで希望の形になるように思うんですが、意味が違うのかなぁ、、、 一応、Sheet1 の A2 と C2 を Sheet2 の最終行にコピーするサンプルを載せておきます。 Private Sub CommandButton1_Click() Dim r As Range, s1 As String, s2 As String  s1 = "Sheet1": s2 = "Sheet2"  Set r = Worksheets(s2).Range("A65536").End(xlUp).Offset(1, 0)  Worksheets(s1).Range("A2").Copy r  Worksheets(s1).Range("C2").Copy r.Offset(0, 1) End Sub

kyoroxchan
質問者

補足

スミマセン… 確かに数値が合ってないですね。 ちなみに、質問欄に載せているものは例なので、実際の表(1)はもっと大きな表です。 それが日々何枚もメールで送られて来るのですが、私の仕事上必要なのは一部なのです。なので、その送られて来たものを同じ形式で何も記入されていないフォーマットにペーストすれば自分の必要な項目だけが取り出せて、なおかつ日ごとに蓄積できればと思ったのです。

関連するQ&A