| よね様
いつもお世話になっております。 今回もご助力頂きたく投稿いたしました。
商品マスタをユーザーフォームで作成したのですが、 既存の項目は「登録」ボタンを押下した際に修正されるようにしたいと考えております。 以下のようなプロージャを書いたのですが、商品名しか変更されません。
どこが間違っているのか分からない為、ご教示いただければと思います。 よろしくお願い致します。
Private Sub Cmd登録_Click() Dim lastRow As Long Dim wRow As Long With Worksheets("商品マスタ") lastRow = Worksheets("商品マスタ").Cells(Rows.Count, 1).End(xlUp).Row End With
wRow = Me.lbl管理番号 + 1 ' Me.lbl管理番号 = Worksheets("商品マスタ").Cells(lastRow, 1) + 1
If WorksheetFunction.CountIf(Worksheets("商品マスタ").Columns(Range("SM管理番号").Column), Me.lbl管理番号) > 0 Then Dim msg As String, title As String msg = "その商品IDは既に登録されています。" & vbCrLf & "修正してもよろしいですか?" title = "確認" Dim res As Integer res = MsgBox(msg, vbYesNo + vbInformation, title) If res = vbNo Then Exit Sub With Worksheets("商品マスタ") .Cells(wRow, Range("SM商品名").Column) = IIf(Me.txt商品名 = "", Null, Me.txt商品名) ←ここしか変更されない .Cells(wRow, Range("SM規格").Column) = IIf(Me.txt規格 = "", Null, Me.txt規格) .Cells(wRow, Range("SM定価").Column) = IIf(Me.txt定価 = "", Null, Format(Me.txt定価, "#,##0")) End With Else Worksheets("商品マスタ").Cells(lastRow + 1, 1) = lbl管理番号.Caption Worksheets("商品マスタ").Cells(lastRow + 1, 2) = txt商品名.Text Worksheets("商品マスタ").Cells(lastRow + 1, 3) = txt規格.Text Worksheets("商品マスタ").Cells(lastRow + 1, 4) = Format(txt定価.Text, "#,##0") End If
MsgBox "登録しました。" Call cmdクリア_Click ' Unload Me End Sub
Private Sub lstデータリスト_Click() With lstデータリスト lbl管理番号.Caption = .List(.ListIndex, 0) txt商品名.Text = .List(.ListIndex, 1) txt規格.Text = .List(.ListIndex, 2) txt定価.Text = .List(.ListIndex, 3) End With End Sub
|