エクセルで在庫表を作ろうとしています
エクセルで在庫表を作ろうとしているのですが、躓いてしまって困っています。
TEST1 コードを手入力した後実行
TEST2 出庫数を入力した後実行
Option Explicit
Option Base 1
Sub TEST1() 'コードを手入力した後実行
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim r&, i&
Dim vL1 As String
Dim vL2 As Long
Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")
r = ws1.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To r
vL1 = Application.WorksheetFunction.VLookup(ws1.Cells(i, 1), ws2.Range("A2:IV65536"), 2, False)
ws1.Cells(i, 1).Offset(, 1) = vL1
vL2 = Application.WorksheetFunction.VLookup(ws1.Cells(i, 1), ws2.Range("A2:IV65536"), 3, False)
ws1.Cells(i, 1).Offset(, 2) = vL2
Next i
End Sub
Sub TEST2() '出庫数を入力した後実行
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim r&, i&
Dim vL2 As Long
Dim vL3 As String
Dim syukko As Long
Dim fnd As Range
Dim zaiko As Long
Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")
r = ws1.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To r
If ws1.Cells(i, 4) > 0 Then
syukko = ws1.Cells(4, 1).Offset(, 3).Value
vL2 = Application.WorksheetFunction.VLookup(ws1.Cells(3, 2), ws2.Range("A2:IV65536"), 3, False)
Set fnd = ws2.Range("A:A").Find(ws1.Cells(i, 1))
If fnd Is Nothing = False Then
zaiko = vL2 - syukko
fnd.Offset(, 2) = zaiko
End If
MsgBox ws1.Cells(i, 2) & "を" & syukko & "出庫します" & vbLf & "在庫は" & zaiko & "になります。"
Else
MsgBox "出庫数を入力して下さい"
Exit Sub
End If
Next i
ws1.Range("A2:D65536").ClearContents
End Sub
ここまでは作りました。
ですが、プロシージャの外では無効です
と出てしまいます。
どうすればよいのでしょうか。
教えて下さい。
シート1のB2にコード・C3に名前・D2に現在個数・E2に出庫数を入力します。
実際にはB3からすうじを入力し、コードを入力すれば自然に名前と現在個数を
シート2から探してくるようにしたいです。
シート2にはA列にコード、B列に名前、C列に現在庫数が載っている表があります(量が半端ではないです)
出来れば、1度出庫数を入れたら、次開いた時にシート2のC列にある現在個数が自然に減っていて、シート1にはフォームしか残らない状態にしたいです。
お願いします<m(__)m>
お礼
さっそくのコメントをありがとうございます。 おかげさまでうまくいきました。助かりました。