• 締切済み

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

  • excelで売上日報を作りたい

    飲食店です。excelでSheet1に1日の売上や仕入を入力し、Sheet2に月の売上や仕入の一覧が出るようにしたいと思ってます。加えて、Sheet1は毎日上書きしても、それがちゃんとSheet2に反映されるようにしたいです。 Sheet1のA1に日付→Sheet2のA1に反映。Sheet1のB2に仕入合計→Sheet2のB2に反映。ここで保存。 翌日、Sheet1のA1に日付を入力したら、Sheet2のA2に自動入力、Sheet1のB2に仕入合計→Sheet2のB3に自動入力。上書き保存。 というようなことです。 Sheetを31日分作るということではなく、Sheet1とSheet2のみで作成したいと思ってます。 関数のみでの作成が不可能でしたら、マクロを使っての作成でも構いません。 説明が下手で申し訳ありませんが、宜しくお願い致します。

  • エクセルで売り上げ表を作成したいのですが…

    エクセル98を使用しています。 月毎の売り上げ表を作成したいと思っています。 あるシート(以降、Aシート)にその月の売り上げ表を作成して、別のシート(以降、Bシート)に月毎の売り上げの履歴を残す事ができたら良いと思っています。 あらかじめ締め日を決めておき、その締め日が過ぎるとAシートの売り上げ表に記載されていた数字はクリアされると同時に、Bシートに売り上げの履歴を残すようにしたいです。 毎月設定しておいた日付けが過ぎると、シートに入力されていた数字を自動にクリアさせる方法はあるのでしょうか? また同じく、毎月設定しておいた日付けが過ぎると、その月毎の売り上げを別のシートに残すような作業はできますのでしょうか? 時間に合わせて、処理を行うといった感じになります。 時間に合わせて、入力されたデータをクリアにする。また別のシートに記録を残す良い方法がありましたら、アドバイスをお願い致します。

  • EXCELで日報作成

    今日は何の仕事をしたかという表をEXCEL2000で作っています。 シートが2枚がありまして、sheet1の、A列に作業名(20個ほど)、 1行目に日付(1日~31日)があります。 sheet2のA列に日付(例:8月16日)、B列に作業名(例:あ)、 C列に時間(例:3:00)と入れたら、sheet1の該当箇所に時間が 自動的に入るようにしたいのですが、どうやっていいかわからず 途方にくれています。 質問の仕方が悪いかもしれませんが、どうかご協力お願いします!

  • エクセル 日報売上を月報売上に日付をキーにして反映

    エクセル 日報売上を月報に展開するマクロで困っております。 準備するシート (1)日報入力シート (2)月報売上シート 日報入力シートに作ったボタンを押すとB3の日付(今日)と月報売上シートA列の2~31に用意された日付(1ヶ月分)を参照する 一致した場所(B列~D列)に 入力シート B7:D7のデータを貼り付ける作業を考えております。 以下は過去の事例を参考にさせて頂きました。日付が横軸ですが、目的は縦軸です。 日報入力は1回のみですので、重複はなく1行ずらす処理は必要ありません。 ご教示頂けば助かります。 よろしくお願い致します。 Sub ボタン1_Click() Dim FRng As Range Dim Rw As Long With Sheets("月報売上シート") If Range("B3").Value = "" Then MsgBox "入力日を記入してください。", vbExclamation Exit Sub End If Set FRng = .Rows(1).Find(Range("B3").Value, lookat:=xlWhole) If Not FRng Is Nothing Then Rw = .Cells(Rows.Count, FRng.Column).End(xlUp).Row If Rw < 3 Then Rw = 3 Else Rw = Rw + 1 .Cells(Rw, FRng.Column).Resize(, 3).Value = Range("B7:D7").Value Else MsgBox "転記先日付が 見つかりません。", vbCritical Exit Sub End If End With Set FRng = Nothing MsgBox "転記しました。", vbInformation, "完了" End Sub

  • エクセルで工事日報にマクロを組みたい。

    エクセルのマクロについて質問です。したい事はイメージ出来るのですが いかんせん、マクロに組む技量がありません。 お手数ですが、解る方、是非、教えて下さい。 まず、工事日報を作っています。 シート構成は「データ」「1週」「2週」「3週」~「16週」となっていて、最初のシートには初期入力するシートがあります。それ以降のシートには、一日分の作業内容がA4サイズで横に7日分並んでいるシート構成です。 マクロに組みたい操作なのですが、まずシートを開くと、その日の頁が開くようにしたいのです。 今日の日付を取得して、その日に対応したシートの所定のセルをアクティブにしたらいいとは解るのですが、それをマクロに組みたいのです。「データ」シートには、それぞれ、一日目から最終日まで、それぞれそのシートの左上のセルの番地は列記してあります。 また、工種ごとに当日の作業人員を入力すると、その横のセルに自動的に「データ」シートに記入されている 「作業開始時間」と「作業終了時間」をマクロで入れたいのです。if分で当日人員を入力すると、表示されるようにしてもいいのですが、時間を変更する可能性があるのです。しかし、ほとんどの業種は時間がほぼ固定なので、手間を省きたいのです。このマクロを全ての工種(41個あります)について、設定したいのです。 あと、天気をさかのぼって入力する時が多々あるのですが、Yahooとかの過去の天気から自動で天気と最高気温、最低気温を取得して、取り込みたいのですが、WEBクエリを自動で簡単にできないでしょうか? 3個まとめて質問させて貰っていますが、よろしくお願いします

  • エクセルで請求書作成し、売上も管理したい

    今、エクセルで請求書を作成しています。この請求書から、日付、売上金額、売上内容などをもう1度入力して一覧にした売上表を作っていますが、これを請求書からの日付等のデータを利用して、再入力をしないで売上表ができないでしょうか教えてください。

  • 教えてください。エクセルについて(初心者です。)

    エクセルについて教えてください。 毎日の業務で「売上表」と「日報」を作成しています。 例えば 売上表のA列に日付  B列に売上  C列に客数を入力します。 日報にTODAY関数で日付を表示させると 売上入力セルにその日の売上が参照される。 といった方法を教えて頂きたいのです。 よろしくお願いします。

  • Excelでの売り上げ処理

    メーカーさんから課せられたノルマを分析するため、 売上日、ユーザーコード、仕入れ値、数量をAccessから Excelにクエリから吸わせ、そのユーザーコード(顧客番号) をLookupで別表から担当者、担当課を参照して空いた行 にその値をオートフィルで貼り込み、数量X仕入れ値の行を作り、 横に「担当者、担当課」縦に「売り上げ月」 データーとして「仕入れ値X数量」を入れ、 月別、担当者別の売り上げ集計を作る事を考えています できるだけ自動で更新できるようにしたいのですが 今のところ支障になっているのが Accessデーターが更新され、エクセルのクエリで 取り込んだ部分の更新をかけるとオートフィルで入れた 部分が空欄になってしまい、先に相当先まで空欄に オートフィルをかけておかなければならないこと、 日付データーが表示形式にかかわらず日で区切られて しまって、手でグループ化してやらないと行けない事です。 特に前者は無駄な処理が増えてしまって困っています。 なんとかできないものでしょうか。 Office2000-SP3です

  • 指定した月のデータを取り出したい

    指定した月のデータを取り出したい Excel2003を使っています。Sheet1に2つの表があります。 1つの表は、商品データ、2つ目の表は、売上データです。 商品データには、番号,売上日,商品名,数量等が入っています。 売上日には、月ごとではなく、売り上げた日にちが入っています。 例えば、A1に月を入力すると、売上データに該当する月のデータを 表示できるようにしたいのです。 例えば、売上データには、5月分の日付や6月分の日付や7月分の日付が 入っています。 A1に、6月と入力すると、売上データの表の1行目から順次6月分のデータを 表示されるようにしたいのです。6月分のデータは、複数行あります。 A1に、6月と入力すると6月のデータをすべてを表示できるようにしたいのです。 売上データの項目は、商品データと同じ番号,売上日,商品名,数量等となっています。 ピボットテーブルや、マクロでやったほうがよいのかもしれないのですが、 あまり自信がないので、関数で出来ないものかと思っています。 関数なら、少しぐらいなら知っているので。頑張って勉強します。 よろしくお願いいたします。

  • エクセルVBAについて

    VBAに関しての質問です。 A列に日付(10行目から) B列にその日の売上が 300行(300日分)入力されてる表があるとします。 C列にその日を含めた過去N日間の最大の売上を表示させたいのです。 例えば 過去5日間なら過去5日間の最大売上げを毎日表示させたいのです 当然この場合は5日間なのでCの13行目までは空白になります。 「N」日はA1セルに任意の日数で入力することによって希望の期間の数値 が表示できるようにしたいのです。 関数を使ってできるのいですが、事情がありましてエクセルのマクロの 繰り返しのプログラムでやりたいのですが VBAに関しては全く素人ですの。どなたかご教授願えませんでしょうか よろしくお願いします。

専門家に質問してみよう