|
VBA初心者のtakeshiです。
受注入力というユーザーフォームを作りました。
そのフォームには
1.得意先名(コンボボックスで得意先登録というシートよりリスト表示)
2.製品名(コンボボックスで製品登録というシートよりリスト表示、1.の得意先名を選択すると、その得意先の製品のみ表示されるようになっている)
3.受注数(コンボボックスで製品登録というシートよりリスト表示、1.,2.のリストから選択することにより、その製品のメーカー指定のロット数がリスト表示される)
4.在庫数(手入力)
5.社内発注数(受注数-在庫数)
6.単価(テキストボックス。3.の受注数に対してそれぞれの単価が製品登録のシートに登録されている)
という項目があります。
教えていただきたいのは、単価の箇所に3.の受注数を選択すると自動的に単価表示ができるようにしたいのです。
Private Sub ComboBox1_Change()
Dim k As Integer
Dim cnt As Integer
cnt = Worksheets("製品登録").Range("A5").CurrentRegion.Rows.Count
受注入力.ComboBox2.Clear
For k = 5 To cnt
If Worksheets("製品登録").Cells(k, 1).Value = 受注入力.ComboBox1.Value Then
受注入力.ComboBox2.AddItem Worksheets("製品登録").Cells(k, 3).Value
End If
Next
End Sub
Private Sub ComboBox2_Change()
Dim i As Integer
Dim cnt As Integer
cnt = Worksheets("製品登録").Range("A5").CurrentRegion.Rows.Count
受注入力.ComboBox3.Clear
For i = 5 To cnt
If Application.WorksheetFunction.IsNumber(ComboBox2.Value) = True Or Application.WorksheetFunction.IsText(ComboBox2.Value) = True Then
If Worksheets("製品登録").Cells(i, 3).Value = 受注入力.ComboBox2.Value Then
受注入力.ComboBox3.AddItem Worksheets("製品登録").Cells(i, 87).Value
受注入力.ComboBox3.AddItem Worksheets("製品登録").Cells(i, 89).Value
受注入力.ComboBox3.AddItem Worksheets("製品登録").Cells(i, 91).Value
End If
End If
Next
End Sub
上記のコードは2.製品名3.受注数のコードで何とか正常に動いてくれます。
問題は、単価です。いろいろと試してみたんですが、いろいろなエラーが出て、もう訳が分からなくなっています。
一応、Worksheet関数のVlookupがいいのかなぁなんて思いながら、やってみても
どうもおかしいみたいで、いったいどういう表記の仕方をすればいいのか、条件分岐の仕方がわかりません。
一応、やりかけでパニックになったところのプログラムを下にはっ付けておきますんで、どなたかどうしたらいいか教えてください、お願いします。
初心者ですんで、変なプログラムで恥ずかしい限りです・・・。
Private Sub CommandButton4_Click()
Dim i As Integer, j As Integer
i = Worksheets("製品登録").Range("A5").CurrentRegion.Rows.Count
j = Worksheets("製品登録").Range("A5").CurrentRegion.Columns.Count
If 受注入力.ComboBox3.Value = Application.WorksheetFunction.VLookup(受注入力.ComboBox2.Value, Worksheets("製品登録").Range("C5:CN23"), 85, False) Then
受注入力.TextBox5.Value = Application.WorksheetFunction.VLookup(受注入力.ComboBox2.Value, Worksheets("製品登録").Range("C5:CN23"), 86, False)
Else: TextBox5.Value = "*"
End If
End Sub
|
|