
現在 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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1日に1人がこなせるプログラム...
-
access2021 VBA メソッドまたは...
-
JISコードの出来てきた意味と成...
-
JavaScriptの定数名が取り消し...
-
CheckBoxのコントロール配列に...
-
python、区分求積法を用いて円...
-
Excel VBA素人です。VBAで図形...
-
Nullの使い方が不正です。
-
AccessでReplace関数を使うときに…
-
このコードをどう修正した良い...
-
ExcelのVBAコードについて教え...
-
オートフィルタで抽出結果に 罫...
-
Exel VBA 別ブックから該当デ...
-
Excel VBAについて
-
プログラムの記法 インラインコ...
-
Accessで重複クエリとその逆の...
-
VBA 別ブックから該当データを...
-
JANコードとPOSコードは同じ?
-
Accessの文字列部分一致を合計...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1日に1人がこなせるプログラム...
-
access2021 VBA メソッドまたは...
-
JANコードとPOSコードは同じ?
-
Exel VBA 別ブックから該当デ...
-
Nullの使い方が不正です。
-
access2003 クエリSQL文に...
-
JavaScriptの定数名が取り消し...
-
オートフィルタで抽出結果に 罫...
-
PreviewKeyDownイベントが2回...
-
エクセルに見えない文字(JISX0...
-
VBAでファイルオープン後にコー...
-
Excelシート上で右クリックがで...
-
変数名「cur」について
-
Excel VBA素人です。VBAで図形...
-
【VB6】実行ファイルとした後、...
-
VBA 現在のセル番地を記憶、復...
-
COBOLの文法
-
ASCIIコードを文字に変換したい
-
wechatアプリについての質問で...
おすすめ情報