お世話になっております。
今在庫管理のマクロを組んでおり、UserForm内のコンボボックス(製品名のコンボボックスは1~5,部品名は6~10)に、製品名・部品名を入力すると『在庫』シートの該当在庫数が+1されるようにしたいです(例えば、〇〇製品の部品Aが入力されたらその在庫数を+1する)。
『在庫』シートに
B列…製品名
C・E・G列…部品名、その隣にそれぞれの在庫数
が記入されています(下記図ご参照いただければと思います)。
B列 | C列 | D列 | E列 | F列 | G列 | H列 | |
---|---|---|---|---|---|---|---|
〇〇製品 | 部品A | 在庫数 | 部品B | 在庫数 | 部品C | 在庫数 | |
部品AA | 在庫数 | 部品BB | 在庫数 | 部品CC | 在庫数 | ||
部品AAA | 在庫数 | 部品BBB | 在庫数 | 部品CCC | 在庫数 |
B列 | C列 | D列 | E列 | F列 | G列 | H列 | |
---|---|---|---|---|---|---|---|
××製品 | 部品A | 在庫数 | 部品B | 在庫数 | 部品C | 在庫数 | |
部品AA | 在庫数 | 部品BB | 在庫数 | 部品CC | 在庫数 | ||
部品AAA | 在庫数 | 部品BBB | 在庫数 | 部品CCC | 在庫数 |
B列 | C列 | D列 | E列 | F列 | G列 | H列 | |
---|---|---|---|---|---|---|---|
△△製品 | 部品A | 在庫数 | 部品B | 在庫数 | 部品C | 在庫数 | |
部品AA | 在庫数 | 部品BB | 在庫数 | 部品CC | 在庫数 | ||
部品AAA | 在庫数 | 部品BBB | 在庫数 | 部品CCC | 在庫数 |
※製品の名前は変わりますが、部品名はすべて同じです。
製品名だけ違う表が複数あるとイメージしていただければと思います。
Private Sub CommandButton1_Click() Dim cb1 As ComboBox, cb2 As ComboBox For n = 1 To 5 Set cb1 = Me.Controls("ComboBox" & n) Set cb2 = Me.Controls("ComboBox" & (n + 5)) Set seihin = Sheets("在庫").Range("B:B").SpecialCells(xlCellTypeConstants) Set buhin = Sheets("在庫").Range("C:C,E:E,G:G").SpecialCells(xlCellTypeConstants) Dim w1 As Range For Each w1 In seihin If cb1.ListIndex > -1 And cb2.ListIndex > -1 Then Dim s As String s = w1.Value Dim c As Range For Each c In buhin If Not w1 Is Nothing Then If cb2.Value = c.Value And cb1.Value = s Then c.Offset(0, 1).Value = c.Offset(0, 1).Value + 1 Else Exit Sub Exit For End If End If Next End If Next Next End Sub
エラーは出ないのですが、一つめの表(シートの一番上の表)しか処理されず困っています(二つ目以降の表は入力しても変化なし)。
どうすればすべての表に適用されるかご教授いただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/20 07:26
2022/01/20 23:07