現在 Userformで入力して 末行に 登録され 並び替えするだけの マクロをやってます。
これだと同じ商品コードがあった場合 重複されてしまいます。ここで上書きされるようにするにはどうやったらいいのでしょうか? また 重複しています 上書きしますか?という警告表示は出せないでしょうか。よろしくお願いします。
A B
1 商品コード 名前
2 2986 AAAA
3 2987 BBBB
4 2988 cccc
5 2989 dddd
現在の userform のコード
Private Sub CommandButton1_Click()
Dim cord As String
Dim syouhinnmei As String
cord = TextBox1.Value
syouhinmei = TextBox2.Value
If cord = "" Then
MsgBox "商品コードを入力してください"
Exit Sub
End If
If syouhinmei = "" Then
MsgBox "商品名を登録してください"
Exit Sub
End If
myRow = Worksheets("Sheet1").Cells(65536, 2).End(xlUp).Row + 1
With Worksheets("Sheet1")
.Cells(myRow, 1).Value = cord
.Cells(myRow, 2).Value = syouhinmei
End With
Dim myCtrl As Control
For Each myCtrl In Controls
If TypeName(myCtrl) = "TextBox" Then _
myCtrl.Value = vbNullString
Next
Sheets("Sheet1").Select
Range("A1:B1").Select
Range("A1:B2000").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin, DataOption1:=xlSortNormal
Sheets("Sheet2").Select
Range("A1").Select
End Sub
No.1ベストアンサー
- 回答日時:
テストしていませんが・・・
このまま改造するなら、前半をこんな感じでしょうか。
Dim cord As String
Dim syouhinnmei As String
Dim tmp As Variant
Dim myRow As Long
Dim myRange As Range
myRow = Worksheets("Sheet1").Range("A65536").End(xlUp).Row
cord = TextBox1.Value
syouhinmei = TextBox2.Value
On Error Resume Next
If cord = "" Then
MsgBox "商品コードを入力してください"
Exit Sub
Else
Set myRange = Worksheets("Sheet1").Range("A1:A" & myRow)
tmp = Application.WorksheetFunction.Match(cord, myRange, 0)
If tmp <> "" Then
MsgBox "重複コード : " & cord & vbLf & _
"品名 : " & Worksheets("Sheet1").Cells(tmp, 2) & vbLf & _
"コードを再設定してください。"
Exit Sub
End If
End If
If syouhinmei = "" Then
MsgBox "商品名を登録してください"
Exit Sub
Else
Set myRange = Worksheets("Sheet1").Range("B1:B" & myRow)
tmp = Application.WorksheetFunction.Match(syouhinmei, myRange, 0)
If tmp <> "" Then
MsgBox "重複品名 : " & syouhinmei & vbLf & _
"コード名 : " & Worksheets("Sheet1").Cells(tmp, 1) & _
"品名を再設定してください。"
Exit Sub
End If
End If
On Error GoTo 0
myRow = myRow + 1
たいへん遅くなってすみませんでした。
いまやって見ましたら できました
o(^-^o)(o^-^)o ヤッター
ほんとうにありがとうございました。
感謝してます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
sinカーブの表示のさせ方
-
1、Rstudioで回帰直線を求める...
-
過剰なオブジェクト指向脳から...
-
変数名「cur」について
-
chatgptでつくってもらったコー...
-
PreviewKeyDownイベントが2回...
-
pythonにてseleniumを使うも、...
-
【VB】タスクマネージャでEXECE...
-
ACCESSで、履歴事項を管理する...
-
パイソンプログラム
-
Ruby 改行文字の挿入
-
フィルターかけた後、重複を除...
-
特定行の背景色を変えたいのですが
-
アルファベットに付いて質問し...
-
ACCESSユニオンクエリでORDER B...
-
Gitのクローンについて
-
WindowsAPIとVC++について
-
TVリモコン設定(SMILE KIDS)
-
アクセスで教えて下さい。 下記...
-
ワークシートチェンジで曜日を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
access2003 クエリSQL文に...
-
1日に1人がこなせるプログラム...
-
Exel VBA 別ブックから該当デ...
-
pythonにてseleniumを使うも、...
-
ExcelのVBAコードについて教え...
-
ExcelのVBAコードについて教え...
-
chatgptでつくってもらったコー...
-
欠番の抽出について
-
JANコードとPOSコードは同じ?
-
JavaScriptの定数名が取り消し...
-
1、Rstudioで回帰直線を求める...
-
特定行の背景色を変えたいのですが
-
変数名「cur」について
-
PreviewKeyDownイベントが2回...
-
将来AIが進歩してくるにつれて...
-
ACCESSユニオンクエリでORDER B...
-
VBAでファイルオープン後にコー...
-
COBOLの文法
-
Nullの使い方が不正です。
おすすめ情報