お風呂の温度、何℃にしてますか?

VBAで転記するVBAのコードをどう書けばいいか教えてください。

内容は以下になります。

・データというエクセルに、Aシート、Bシートと2つのシートがあります。
・Aシートには①車種名、②製造NO、③在庫の3つの項目があり、それぞれにデータがあります。
・Bシートには①車種名、②工場受注、③製造NO、④在庫の4つの項目があり、それぞれにデータがあります。
・Bシートの①車種名、②工場受注に合う項目データを、Aシートから転記します。


Bシートで
・車種名AAAの場合、工場受注は60000ですので、Aシートから同じ車種名AAAより、上からの製造NOと、
在庫が受注に満たすようにデータを転記します。60000=20000×3つ

・車種名BBBの場合、工場受注は40000ですので、Aシートから同じ車種名BBBより、上からの製造NOと、
在庫が受注に満たすようにデータを転記します。40000=20000×2つ

・転記後、車種名間の行を開ける。


画像エクセルを下記に添付します。(ネット便)
https://1ne.jp/receiver/file_box.do?fb=5fa1e0d86 …


すみませんが、宜しくお願い致します。

A 回答 (4件)

>ありがとうございました。

行けました。
良かったです。問題なければ、質問を締め切ってください。
    • good
    • 0

下記にアップしました。


https://ideone.com/yHA0Zu
実行時は、念のためBシートのバックアップをとってから実行してください。
    • good
    • 0
この回答へのお礼

ありがとうございました。行けました。

お礼日時:2023/03/28 17:25

>5.について、出力結果2の様にお願いします。


すみません。
下記の①は

人間が判断すれば、出力結果2が理想かと思われますが、
製造NO=1111から順に割り当てるので、出力結果2のようになります。

人間が判断すれば、出力結果2が理想かと思われますが、
製造NO=1111から順に割り当てるので、出力結果1のようになります。
の誤りでした。

従って、出力結果2のようにすることはできません。出力結果1のようになります。出力結果2のようにすることは必須でしょうか。
    • good
    • 0
この回答へのお礼

何度もすみません。たしかに出力結果1の方が自然ですね。すみません出力結果1で大丈夫です。

お礼日時:2023/03/27 23:56

補足要求です。


1.Bシートの車種がAシートにないときは、製造NOと在庫は空白になりますが、それで良いですか。
(エラーメッセージは表示しない)

2.Aシートの在庫量が、Bシートの受注量を満たさないとき、
Aシートの在庫を全て、Bシートの受注に割り当てます。
その場合、エラーメッセージは表示しませんが、よろしいでしょうか。

Aシート
車種 製造NO 在庫
XXXX 1111  2000
XXXX 2222  2000

Bシート
  車種 工場受注 製造NO 在庫
  XXXX 5000   1111  2000
          2222  2000

上記のようになります。


3.Bシートの受注量がAシートの1つの製造Noの在庫より少ないとき、その製造Noの在庫が余るので
それを次の受注に回して良いですか。

Aシート
車種 製造NO 在庫
XXXX 1111  2000
XXXX 2222  2000

Bシート
  車種 工場受注 製造NO 在庫
① XXXX 500     1111 500
② YYYY 500
③ XXXX 700     1111 700 ・・・製造NOは①の受注時と同じ

4.上記のケースで、在庫の数字は工場受注に割り当てた数を設定しますがそれで良いですか。
Aシートの在庫をそのまま設定すると、①の在庫=2000 ②の在庫=2000 となる。

5.在庫の割り当ての手順
Aシートの在庫を上から順に割り当てて行きます。
車種がXXXXの場合、製造NO=1111の在庫が0になるまで、割り当てを行い、
次に製造NO=2222の在庫が0になるまで割当を行います。
その為、以下のような割り当ての結果になります。(出力結果1になります)

Aシート
車種 製造NO 在庫
XXXX 1111  2000
XXXX 2222  2000
XXXX 3333  500

Bシート(出力結果1)
  車種 工場受注 製造NO 在庫
① XXXX 500     1111 500
② YYYY 500
③ XXXX 2000    2222 1500
           3333 500

以下のようにはなりません。
Bシート(出力結果2)
  車種 工場受注 製造NO 在庫
① XXXX 500     3333 500
② YYYY 500
③ XXXX 2000    1111 2000

人間が判断すれば、出力結果2が理想かと思われますが、
製造NO=1111から順に割り当てるので、出力結果2のようになります。

これで問題ないでしょうか。

6.出力先のシートについて
Bシートを直接するのではなく、集計結果をCシートに出力したいのですがよろしいでしょうか。
レイアウトは、Bシートと同じになります。

7.Aシートの作業列について
Aシートの在庫を各受注に割り当てる時、在庫残を管理する必要があります。
その為に1列作業用に使用します。
作業に使用して良い列を提示していただけませんでしょうか。
(例 Z列等)
    • good
    • 0
この回答へのお礼

ご連絡ありがとうございます。
下記に回答します。

1.について、はい、大丈夫です。エラーメッセージも表示しません。
2.について、はい、大丈夫です。エラーメッセージも表示しません。
3.について、はい、大丈夫です。
4.について、はい、大丈夫です。
5.について、出力結果2の様にお願いします。
6.について、出力先のシートは2つのシートしか使用しないので、できれば、Bシートでお願いします。
7.について、すみません、5列目で願いします。

以上すみませんがよろしくお願いします。

お礼日時:2023/03/27 20:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報