ユーザーフォームを作成中です。
コンボボックス1(cbokaiysa) 会社名を選択
コンボボックス2(cbobuten) 支店名を選択
コンボボックス3(cbotantousya) 担当者名を選択
テキストボックス1(txtkouza) 口座番号入力
テキストボックス2(txtsei) 姓入力
テキストボックス3(txtseihuri) 姓(フリガナ)入力
テキストボックス4(txtmei) 名入力
テキストボックス5(txt) 名(フリガナ)入力
とし、コマンドボタン(touroku)をクリックすると「登録情報」シートのA〜H列の一番下に転記されるようにしました。
コマンドボタン(touroku)クリックする際、
コンボボックス1(cbokaiysa) 会社名
コンボボックス2(cbobuten) 支店名
コンボボックス3(cbotantousya) 担当者名
テキストボックス1(txtkouza) 口座番号
が同じデータが既に「登録情報」シートにある場合に既に登録があると表示させたいのですが、
この場合どのようにしたらよいのでしょうか?
以下に現在のコードを記載いたします。
どこに何を追加したら良いのか教えていただけませんでしょうか?
どうぞよろしくお願いいたします。
Private Sub syuuryou_Click()
End
End Sub
Private Sub touroku_Click()
Dim res
res = MsgBox("登録します。よろしいですか?", vbYesNo + VbInfomation, "確認")
If res = vbNo Then
Exit Sub
End If
Sheets("登録情報").Activate
Dim Lrow
Lrow = Sheets("登録情報").Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("登録情報").Range("A" & Lrow).Value = cbokaisya
Sheets("登録情報").Range("B" & Lrow).Value = cbobuten
Sheets("登録情報").Range("C" & Lrow).Value = cbotantousya
Sheets("登録情報").Range("D" & Lrow).Value = txtkouza
Sheets("登録情報").Range("E" & Lrow).Value = txtsei
Sheets("登録情報").Range("F" & Lrow).Value = txtseihuri
Sheets("登録情報").Range("G" & Lrow).Value = txtmei
Sheets("登録情報").Range("H" & Lrow).Value = txtmeihuri
End Sub
Private Sub UserForm_Initialize()
Dim cnt
Dim Lrowcbokaisya.ColumnCount = 1
Lrow = Sheets("会社").Range("A" & Rows.Count).End(xlUp).Row
For cnt = 1 To Lrow
cbokaisya.AddItem Sheets("会社").Cells(cnt, 1).Value
Next
cbobuten.ColumnCount = 1
Lrow = Sheets("部店").Range("A" & Rows.Count).End(xlUp).Row
For cnt = 1 To Lrow
cbobuten.AddItem Sheets("部店").Cells(cnt, 1).Value
Next
cbotantousya.ColumnCount = 1
Lrow = Sheets("担当者").Range("A" & Rows.Count).End(xlUp).Row
For cnt = 1 To Lrow
cbotantousya.AddItem Sheets("担当者").Cells(cnt, 1).Value
Next
End Sub
No.2ベストアンサー
- 回答日時:
'~略~
Dim Lrow
With Sheets("登録情報")
If WorksheetFunction.CountIfs(.Range("A:A"), cbokaisya, .Range("B:B"), cbobuten, .Range("C:C"), cbotantousya, .Range("D:D"), txtkouza) = 1 Then
MsgBox "表示したい内容(既に登録ありの時)"
Exit Sub
Else
Lrow = .Range("A" & Rows.Count).End(xlUp).Row + 1
.Range("A" & Lrow).Value = cbokaisya
.Range("B" & Lrow).Value = cbobuten
.Range("C" & Lrow).Value = cbotantousya
.Range("D" & Lrow).Value = txtkouza
.Range("E" & Lrow).Value = txtsei
.Range("F" & Lrow).Value = txtseihuri
.Range("G" & Lrow).Value = txtmei
.Range("H" & Lrow).Value = txtmeihuri
End If
End With
End Sub
今回はCountIfs関数を用いてみました。
With~End With を使うとスッキリ纏まるかも。
Bookのコピーで試してみて下さい。
めぐみんさん、ありがとうございます!
重複登録しようとしたときにメッセージが出ました!
また、コードをスッキリしていただき、ありがとうございます。
本当に助かりました。
No.1
- 回答日時:
この場合、
コンボボックス1(cbokaiysa) 会社名
コンボボックス2(cbobuten) 支店名
コンボボックス3(cbotantousya) 担当者名
テキストボックス1(txtkouza) 口座番号
この4個全てが一致するデータの重複調査ですか?
それとも他の条件で・・・?(例えばどれか1つでもとか?)
ちなみに1行目は項目行?データ開始行?
めぐみんさん、ありがとうございます。
今回は4項目全てが一致する場合に重複とみなしたいと思います。
1行目は項目行となっています。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Visual Basic(VBA) 日付を重複させずに数えたい 4 2022/12/04 16:26
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) VBA ComboBoxについて 2 2022/10/21 12:15
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
エクセルでユーザーフォームの入力時に重複チェックしたいのですが・・・。
Excel(エクセル)
-
【EXCEL】UserFormで入力して 重複したデータがあった場合 上書きかキャンセルかを表示させたい。
Excel(エクセル)
-
VBE ユーザーフォーム重複・空白チェック(VBE初心者)
Visual Basic(VBA)
-
-
4
エクセルマクロ:複数列 重複があった場合、メッセージと印入れる方法
Excel(エクセル)
-
5
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
-
6
「選択範囲を解除してアクティブセルを選択」をマクロで行うにはどうすればよいでしょうか
Excel(エクセル)
-
7
ユーザーフォーム上に現在日時と時刻を表示させていますがフォームを実行すると時間が更新されません。それ
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
php 入力画面から確認表示画面...
-
動的にhtmlテーブルを表示
-
POSTで受け渡したものを保存し...
-
会員登録システム 仮登録のメ...
-
HTMLエスケープ処理とデーター...
-
php/MySQLによるログイン認証に...
-
【ExcelVBA】検索したデータを...
-
フォームを使わずにPOST送信す...
-
閉じるボタン「×」を制御したい
-
必須入力項目チェック
-
「取得先」という表現について
-
Dosブロンプトでtabを出力したい
-
switch()文で値の大小比較
-
DTOとEntityの差は何ですか。
-
wordの差し込み印刷で文字...
-
バッチファイルでpingの結果を...
-
ps3で久しぶりにCDの音楽情報取...
-
shシェルスクリプト 空白行の...
-
自分の掲示板にアクセス解析を...
-
VBA コレクションに2次元配列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
php 入力画面から確認表示画面...
-
ログイン画面から入って、「戻...
-
php history.back()の戻るボタ...
-
POSTで受け渡したものを保存し...
-
フォームを使わずにPOST送信す...
-
VBAで重複チェックの仕方を教え...
-
PHPで値を保持する方法
-
ブラウザバックしてもチェック...
-
IFRAME内PHPのセッション変数取...
-
【Java】投稿完了画面リロード...
-
HTMLエスケープ処理とデーター...
-
cURL関数を使用したphpからのpo...
-
asp.netでのセッションを使用し...
-
「ページネーション」で検索キ...
-
php に関して質問です。 各ユー...
-
閉じるボタン「×」を制御したい
-
PHPで名寄せするには?
-
セッションを使用したページ遷移
-
HTMLエスケープすべき場所につ...
-
GETのメリットについて
おすすめ情報