No.3ベストアンサー
- 回答日時:
>VBAを習得していないので、マクロでやってみようかと思います。
エクセルではVBAもマクロも同じもののことです。
アクセスでは、VBAとマクロは全く別物です(同じように機能を作成する方法ではありますが)
試しに、新しいブックに
シート名 材料使用量マスター として
商品ID 材料ID 数量
100011000002
100012000031
100013000012
100021000011
100022000032
といったように商品ごとに使用する材料と数量を入れた表を準備
シート名 使用材料一覧 として
商品ID 材料ID 数量
とタイトル行を準備
もひとつのシートに(名前は自由)
日付 納品No 商品ID 数量
10月1日1100012
と売れた商品を入力するシートを準備します。
そのシート名のタブを右クリック、コードの表示をクリックすると VBエディターが起動します。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then
商品ID = Range("C" & Target.Row)
数量 = Target.Value
MsgBox 商品ID
For i = 2 To Sheets("材料使用量マスター").Range("A65536").End(xlUp).Row
If Sheets("材料使用量マスター").Range("A" & i).Value = 商品ID Then
GYOU = Sheets("使用材料一覧").Range("A65536").End(xlUp).Row + 1
Sheets("使用材料一覧").Range("A" & GYOU).Value = Date
Sheets("使用材料一覧").Range("B" & GYOU).Value = Sheets("材料使用量マスター").Range("B" & i).Value
Sheets("使用材料一覧").Range("C" & GYOU).Value = Sheets("材料使用量マスター").Range("C" & i).Value * Target.Value
End If
Next
End If
End Sub
上記をコピィして貼り付けてください。
細かいことまでは説明いたしませんが、
If Target.Column = 4 Then つまり
売上を入力するシートの4列目D列に数量を入力したときに
記述したVBAが実行されて
使用材料一覧のシートに 使用した材料が書き加えられていきます。
コードは、わかりやすいように
Sheets("使用材料一覧").とか何度も記述しています。少し勉強していただけると
応用やもっとシンプルなコードになると思います。
注意
数量を入れたときでなく、間違って入力して、後で変更の作業を行ったときも実行されます。
本当にありがとうございます。
早速試しました。
問題が、一気に解決しました。
親切にVBAまで、教えて頂き、大変感謝しています。
ありがとうございます。
No.2
- 回答日時:
商品を仕入れて、その商品を販売するのであれば、在庫の管理も意外と簡単なのですが、
材料を仕入れて、その材料を使って製品を組み立て、製品を出荷し、材料の在庫の管理を行う
場合は、在庫管理でも結構上級です。
この様なWebサイトで全ての状況を把握するのは難しいので、一案のみです。
データベースでは、テーブル(アクセスでは、テーブルと呼びますが、この場合、シートに準備するシートの構成とでも覚えてください
の準備の仕方が、重要で色々な経験からわかってきます。
この場合
シート 材料一覧マスター
材料ID 材料名 現在在庫 仕入先 仕入単位 仕入単価・・・
100000 ハンバーグ
200003 ウインナー
・・・
シート 商品一覧マスター
商品ID 商品名 商品単価
10001 ハンバーグ弁当 800
・・・
シート 商品仕様材料マスター
商品ID 材料ID 数量
10001 100000 2
10001 200003 1
10001 300001 2
・・・
10002 100001 1
10002 200003 2
・・・・
と商品ごとに使用する材料の一覧表を準備します。
シート 売上データ
日付 納品No 商品ID 商品名 数量 単価 小計
10/1 00001 100001 VLOOKUP 2 VLOOKUP 計算式
・・・
と売上のデータを日付、商品ID、数量を日々入力します。
シート 使用材料一覧
日付 使用商品ID 材料ID 使用数量・・・
10/1 10001 100000 2
10/1 10001 200003 1
10/1 10001 300001 2
・・・
売上の一覧から使用した材料の一覧表を作成するのは関数では大変ですので、VBAを使用したほうが良いでしょう。
操作方法として、一日の売上を入力したらマクロのボタンを押すと、一日に使用した材料が
使用材料の一覧シートに材料ごとに追加されるVBAとかです。
シート 材料仕入データ
日付 材料ID 仕入数量・・・
10/1 100000 100
10/1 200003 100
・・・
と仕入れのデータを入力していけば
材料別の在庫数(材料一覧シートの現在在庫数)は、SUMIF関数で得られると思います。
状況によっては、更にシート数は増えるとかもしれませんが、最低でもこの6種類は必要かと思います。
データの数にもよりますが、末永く使用するのであれば、アクセスなど
データベースをお勧めします。
回答ありがとうございます。
返事が遅くなりすみません。
だいぶイメージができるようになりましたが、
VBAを習得していないので、マクロでやってみようかと思います。
おっしゃる通り、在庫管理表などは、数年続けて意味があると思うので、来年度は、アクセスに挑戦したいと思います。
(時間があればですが、、、)
いろいろと、ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 簿記検定・漢字検定・秘書検定 棚卸減耗損について 2 2022/05/19 04:48
- 簿記検定・漢字検定・秘書検定 簿記2級 売上原価の計算と期末商品の評価に関する質問 3 2023/06/24 23:50
- スーパー・コンビニ 一斉値上 スーパーの食料品 値上や単価の仕組みは? 4 2022/06/01 16:18
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- 消費税 消費税の納税額の計算 1 2023/02/19 18:12
- 会計ソフト・業務用ソフト Excelで売上げデータの中の任意の商品の合計を出したい 3 2023/01/18 18:19
- 財務・会計・経理 簿記の質問(難問です) この場合の仕訳、記帳方法を教えてください。 6 2022/09/13 13:52
- 簿記検定・漢字検定・秘書検定 簿記2級 連結会計 未実現利益の消去の問題です。 「次の取引について連結修正仕訳を行いなさい。 S社 1 2023/08/24 12:30
- Visual Basic(VBA) EXCEL関数LOOKUPとFILTERについての質問です 1 2022/12/21 05:53
- 財務・会計・経理 勘定科目についてしつもんです。 2 2022/07/24 15:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでエクセルシートを更新...
-
excelで、セル内に文字が入力さ...
-
エクセルで、2つのシートにある...
-
エクセルVBAで65536レコードを...
-
【エクセル】シートのロックで...
-
エクセルで更新日時を表示したい。
-
表示倍率を変更させない方法
-
パソコンで購入したデーターが...
-
セブンnowは駅前とかでも配達し...
-
「24日の0時」って・・・
-
エクセルのチェックボックスを...
-
日付の大小の表現
-
エクセルで最高値、最低値の日...
-
差し込み印刷に当日の日付が入...
-
「時間」、「期日」、「日付」...
-
エクセルで数字から名前に変...
-
回覧板の日付について質問です...
-
EXCELで日付を****年上期、****...
-
エクセル関数で…
-
履歴書の日付間違いで落ちますか。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでエクセルシートを更新...
-
excelで、セル内に文字が入力さ...
-
エクセルのシートを同時に行削...
-
表示倍率を変更させない方法
-
【エクセル】シートのロックで...
-
エクセル表作成についてお分か...
-
エクセルの担当者別にシートを...
-
エクセルVBAで65536レコードを...
-
Excelのマクロで、開いた時に、...
-
同一セルに入力規則のリストと...
-
エクセルで、2つのシートにある...
-
エクセルシートの統合
-
エクセルで更新日時を表示したい。
-
Excelで、表に小計と合計を入れ...
-
教えてください!エクセルのシ...
-
マクロ>指定した範囲をテキス...
-
STAT VIEWが使えない!!!
-
ワードの差し込み印刷について
-
エクセルVBAの文字列の部分一致...
-
エクセルで別シート、または別...
おすすめ情報