Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4044 / 13644 ツリー ←次へ | 前へ→

【58524】在庫管理をしたいのに・・・ Mimi 08/10/28(火) 23:07 質問[未読]
【58525】Re:在庫管理をしたいのに・・・ Mimi 08/10/28(火) 23:13 質問[未読]
【58528】Re:在庫管理をしたいのに・・・ かみちゃん 08/10/28(火) 23:51 発言[未読]
【58533】Re:在庫管理をしたいのに・・・ Mimi 08/10/29(水) 6:37 質問[未読]
【58567】Re:在庫管理をしたいのに・・・ ベンセンヘイバー 08/10/30(木) 11:31 回答[未読]
【58724】Re:在庫管理をしたいのに・・・ Mimi 08/11/5(水) 22:13 お礼[未読]

【58524】在庫管理をしたいのに・・・
質問  Mimi  - 08/10/28(火) 23:07 -

引用なし
パスワード
     A   B   C   D
1 LOT 入庫数 出庫数  在庫
2 08033       95      95       0
3 08034   94      94       0
4 08035       94      10       84
5 08036   93           93
6 08037       94           94
7 08038       94           94
8 08039   94           94

上のような在庫表で管理していますが今度200個出庫があってLOTの小さいほうから
順次出庫した時、在庫表を自動的に変える方法がよくわかりません。
どなたか教えて頂けませんか・・・。
お願いします。

【58525】Re:在庫管理をしたいのに・・・
質問  Mimi  - 08/10/28(火) 23:13 -

引用なし
パスワード
   すみません。
在庫表が変でした。
  A   B   C   D
1 LOT 入庫数 出庫数  在庫
2 08033   95  95    0
3 08034   94  94    0
4 08035   94  10    84
5 08036   93       93
6 08037   94       94
7 08038   94       94
8 08039   94       94

上のような在庫表で管理していますが今度200個出庫があってLOTの小さいほうから順次出庫した時、在庫表を自動的に変える方法がよくわかりません。
どなたか教えて頂けませんか・・・。
お願いします。

【58528】Re:在庫管理をしたいのに・・・
発言  かみちゃん E-MAIL  - 08/10/28(火) 23:51 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>  A   B   C   D
>1 LOT 入庫数 出庫数  在庫
>2 08033   95  95     0
>3 08034   94  94     0
>4 08035   94  10    84
>5 08036   93       93
>6 08037   94       94
>7 08038   94       94
>8 08039   94       94
>
>上のような在庫表で管理していますが今度200個出庫があってLOTの小さいほう
> から順次出庫した時、在庫表を自動的に変える方法

どう変わったらいいのでしょうか?

シートイメージを投稿される場合は、投稿欄右下の「等幅」にチェックを入れると
綺麗に見せることができます。

【58533】Re:在庫管理をしたいのに・・・
質問  Mimi  - 08/10/29(水) 6:37 -

引用なし
パスワード
   かみちゃんさん、こんにちは。
いつもありがとう。

  A   B   C   D
> LOT 入庫数 出庫数  在庫
>2 08033   95  95     0
>3 08034   94  94     0
>4 08035   94  10    84
>5 08036   93       93
>6 08037   94       94
>7 08038   94       94
>8 08039   94       94

コマンドボタンを押したら
D2から下へ順に在庫チェックしてC4が94、C5が93、C6が23に
D4が0、D5が0、D6が71になるようにしたいのですが。
お願いします。

【58567】Re:在庫管理をしたいのに・・・
回答  ベンセンヘイバー  - 08/10/30(木) 11:31 -

引用なし
パスワード
   こんにちは お邪魔します

出庫すべき個数が G5 にあり、
在庫不足のための未出庫の個数を I5 に表示するとします
D列には、=B2-C2 という形でフィルコピーで埋めてください

Sub MyTest001()

  Worksheets("sheet4").Activate
  
  Dim lNum As Long
  Dim rng As Range
  
  '出庫数
  lNum = Range("G5").Value
  
  '在庫0のセルを検索(逆方向検索)
  Set rng = Range(Range("D1"), Range("D" & Rows.Count).End(xlUp)).Find( _
    0, , xlValues, xlWhole, xlByRows, xlPrevious)
  
  '在庫0のセルが無ければ、最初のセルから開始
  If rng Is Nothing Then
    Set rng = Range("D2")
  Else
    '在庫0のセルがあれば、その次の行から
    Set rng = rng.Offset(1, 0)
    If IsEmpty(rng) Then
      '次の行にデータが無ければ終了
      Range("I5").Value = lNum
      MsgBox "在庫がもうありません"
      Exit Sub
    End If
  End If
  
  
  Do While lNum > 0
    If rng.Value > lNum Then
      'その行の在庫 > 出庫
      rng.Offset(, -1).Value = rng.Offset(, -1).Value + lNum
      lNum = 0
      Exit Do
    Else
      'その行の在庫 <= 出庫
      lNum = lNum - rng.Value
      rng.Offset(, -1).Value = rng.Offset(, -1).Value + rng.Value
      '在庫が足りない分、次の行へ移動
      Set rng = rng.Offset(1, 0)
      If IsEmpty(rng) Then
        '次の行にデータが無ければ終了
        Range("I5").Value = lNum
        MsgBox "在庫がもうありません" & "未出庫:" & lNum & "個"
        Exit Do
      End If
    End If
  Loop
  
  ' I5 セルに出庫できなかった個数を表示
  Range("I5").Value = lNum

End Sub

スマートな案が思い浮かばなかったので、ちょっとガチガチですが。

【58724】Re:在庫管理をしたいのに・・・
お礼  Mimi  - 08/11/5(水) 22:13 -

引用なし
パスワード
   ベンセンヘイバー さんありがとう。

試してみます。 Mimi

4044 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free