Cảnh báo khi nhập dữ liệu trùng trong vùng fillter

Liên hệ QC

huutinh85

Thành viên hoạt động
Tham gia
8/1/13
Bài viết
120
Được thích
7
mình có 1 bảng phân công đứng máy,mối người trong 1 bộ phận phụ trách nhiều máy, số máy khong giới hạn. Khi mình chọn tên bộ phận ở B4 VÀ Click "PC DUNG MAY" thì sẽ fill ra từng BP. Nhập pc cho từng người, khi minh nhập trùng máy trong cùng 1 bộ phận thì sẽ xuất hiện cảnh báo máy đã pc., nếu khác bộ phận thì trùng cũng không sao cả. Mình đã tham khảo code của 1 bác trên diễn đàn nhưng code này áp cụng cho toàn vùng nên mình ko biết làm thế nào để áp dụng riêng cho phần fillter mà ko ảnh hưởng vùng khác. Mong các bác chỉ giáo!
 

File đính kèm

Thử code này xem:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lr As Long, i As Long, j As Long, Tmp As String
Lr = Range("A" & Rows.Count).End(xlUp).Row
If Target.Address = "$B$4" Then
    Range("A6:S" & Lr).AutoFilter 2, Range("B4").Value
ElseIf Not Intersect(Target, Range("D7:S" & Lr)) Is Nothing Then
    If Target.Count = 1 Then
        For i = 1 To Lr - 6
            If Cells(i + 6, 2).Value = Range("B4").Value Then
                For j = 1 To 16
                    Tmp = UCase(Cells(i + 6, j + 3).Value)
                    If Tmp = UCase(Target.Value) And _
                        Target.Value <> "" And _
                        Cells(i + 6, j + 3).Address <> _
                        Target.Address Then
                        MsgBox "Trùng PC máy " & Cells(i + 6, j + 3).Value
                    End If
                Next j
            End If
        Next i
    End If
End If
End Sub
Chọn B4 để Filter.
 

File đính kèm

Upvote 0
Thử code này xem:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lr As Long, i As Long, j As Long, Tmp As String
Lr = Range("A" & Rows.Count).End(xlUp).Row
If Target.Address = "$B$4" Then
    Range("A6:S" & Lr).AutoFilter 2, Range("B4").Value
ElseIf Not Intersect(Target, Range("D7:S" & Lr)) Is Nothing Then
    If Target.Count = 1 Then
        For i = 1 To Lr - 6
            If Cells(i + 6, 2).Value = Range("B4").Value Then
                For j = 1 To 16
                    Tmp = UCase(Cells(i + 6, j + 3).Value)
                    If Tmp = UCase(Target.Value) And _
                        Target.Value <> "" And _
                        Cells(i + 6, j + 3).Address <> _
                        Target.Address Then
                        MsgBox "Trùng PC máy " & Cells(i + 6, j + 3).Value
                    End If
                Next j
            End If
        Next i
    End If
End If
End Sub
Chọn B4 để Filter.
Dạ cảm ơn bác rất nhiều ạ. giờ e muốn sau khi cảnh báo thì dữ liệu trùng tại cell vừ điền đó bị xóa đi thì e thêm câu lệnh sau mgsbox là: target.clearcontents thấy ok. đượckhông bác
 
Upvote 0
Dạ cảm ơn bác rất nhiều ạ. giờ e muốn sau khi cảnh báo thì dữ liệu trùng tại cell vừ điền đó bị xóa đi thì e thêm câu lệnh sau mgsbox là: target.clearcontents thấy ok. đượckhông bác
Được bạn, mà cứ thử được thì làm thôi.
Chúc vui!
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom