######やりたいこと
・既存のデータを修正したい、新規データも登録したい
入力フォームを作成しています。チェックボックスを3つ作成し、
どれがひとつがチェックされたら
シートJ列に表示するコードをかいています
その際、新規でデータを作成するときにはうまくいくのですが
既存のデータを編集するときにも新規セルで入力されてしまいます
(列2にデータが入っていてそれを編集したいのに
J列だけ一つ下へいってしまう)
こういったタグを用意したのですがよくわからず躓いています
Private Sub cmd登録_Click() CheckBoxCaptionToCellValue Dim wRow As Long Dim コントロール As Control Dim チェック状態 As Boolean チェック状態 = False For Each コントロール In Controls If TypeName(コントロール) = "CheckBox" Then If コントロール.Value = True Then チェック状態 = True Exit For End If End If Next If チェック状態 = False Then MsgBox "チェックボックスが選択されていません。" Exit Sub End If 'フォーム上の各データをシートへ送る With Worksheets("顧客情報") wRow = Me.lbl行番号.Caption .Cells(wRow, 1) = Me.txt顧客番号 .Cells(wRow, 2) = Me.txtふりがな .Cells(wRow, 3) = Me.txt名前 .Cells(wRow, 4) = Me.txt郵便番号 .Cells(wRow, 5) = Me.txt住所 .Cells(wRow, 6) = Me.txt電話番号 .Cells(wRow, 7) = Me.txt電話番号2 .Cells(wRow, 8) = Me.txt受付日 .Cells(wRow, 9) = Me.txt担当 .Cells(wRow, 10) = Me.CheckBox1 .Cells(wRow, 10) = Me.CheckBox2 .Cells(wRow, 10) = Me.CheckBox3 .Cells(wRow, 11) = Me.txt見積金額 .Cells(wRow, 12) = Me.txt内金 .Cells(wRow, 13) = Me.txt増 .Cells(wRow, 14) = Me.txt減 .Cells(wRow, 15) = Me.txtチップ .Cells(wRow, 17) = Me.txt備考欄 End With MsgBox "登録しました。この画面を閉じて入力データを確認して下さい", vbInformation + vbOKOnly, "Information" '← 登録メッセージ表示 End Sub
まず、質問を編集して、Private Sub cmd登録_Click() のいまのコードを全部載せてみてください。
別の質問で聞いた感じでは、
・ [cmd登録]を押したときに、
・ その時に編集している(新規または既存の)対象行のJ列のセルの値を、
・ ユーザーフォームにある3つのチェックボックスのキャプションを連結した文字列で更新したい
ということだと推測しています。
また、
・ いまどの行を編集しているかは、フォームの [lbl行番号]に保持している
ように見えます。
なので、あとはその行番号のJ列のセルを編集すればいいだけのような気がします。
編集しました。
ラベル行番号は wRow = Me.lbl行番号.Caption
.Cells(wRow, 1) = Me.txt・・・・
の認識であっていますでしょうか?
回答2件
あなたの回答
tips
プレビュー