ตั้งเงื่อนไขว่าถ้าค่าซ้ำให้แจ้งเตือนแต่เวลาไม่เจอค่าซ้ำกลับแจ้งเตือนเหมือนกัน
Posted: Fri Mar 01, 2019 1:41 pm
เงื่อนไขคือเวลา add ข้อมูลไปแล้วถ้ามีค่าซ้ำกันจะแจ้ง msgbox ถ้าไม่ซ้ำก็สามารถ add ได้ตามปกติ แต่พบปัญหาว่าพบค่าซ้ำหรือไม่ซ้ำก็แจ้ง msgbox ตลอด ลองพยายามแก้ code สรุปว่าพบค่าซ้ำหรือไม่ซ้ำ msgbox ก็จะไม่ขึ้นทั้งคู่ รบกวนดู code ให้หน่อยครับว่าควรปรับตรงไหนอย่างไรบ้าง ขอบคุณครับ
รูปประกอบครับ
https://www.picz.in.th/image/11111.tdgaHg
https://www.picz.in.th/image/22222.tdizIR
รูปประกอบครับ
https://www.picz.in.th/image/11111.tdgaHg
https://www.picz.in.th/image/22222.tdizIR
Code: Select all
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, Range("EMP_NO")) = "" Then Exit Sub
If Not Intersect(Target, Range("EMP_NO")) Is Nothing Then
If Len(Intersect(Target, Range("EMP_NO"))) <> 6 Then
MsgBox "กรุณาใส่ Emp No. ให้ถูกต้อง", vbCritical, "Denied Access"
Intersect(Target, Range("EMP_NO")).Select
Intersect(Target, Range("EMP_NO")).Value = ""
Else
If Not IsNumeric(Intersect(Target, Range("EMP_NO"))) Then
MsgBox "กรุณาใส่ Emp No. ให้ถูกต้อง", vbCritical, "Denied Access"
Intersect(Target, Range("EMP_NO")).Select
Intersect(Target, Range("EMP_NO")).Value = ""
Else
Dim rows1, i As Long
rows1 = Sheets("Sheet1").Range("A1").CurrentRegion.Rows.Count
For i = 2 To rows1
If Sheets("Sheet1").Cells(i, 1) = Intersect(Target, Range("EMP_NO")) Then
Sheets("Sheet1").Cells(i, 1).Select
Intersect(Target, Range("EMP_NO")) = ""
Dim msgbox1 As Integer
msgbox1 = MsgBox("Emp No. หมายเลข : " & Sheets("Sheet1").Cells(i, 1).Value & " มีอยู่ในระบบแล้ว ต้องการเปลี่ยนแปลงค่า Name หรือไม่", vbYesNo, "Denied Access")
If msgbox1 = vbYes Then
Dim msgbox2 As Variant
msgbox2 = InputBox("กรุณาใส่ค่าที่ต้องการ", "Input Data")
Sheets("Sheet1").Cells(i, 2) = msgbox2
End If
Exit For
End If
Next i
End If
End If
End If
End Sub