アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在 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

A 回答 (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
    • good
    • 0
この回答へのお礼

たいへん遅くなってすみませんでした。
いまやって見ましたら できました
o(^-^o)(o^-^)o ヤッター

ほんとうにありがとうございました。
感謝してます。

お礼日時:2005/11/18 08:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!