Validation không thực hiện được khi Protect (Chạy khi UnProtect)

  • Thread starter Thread starter M@trixs
  • Ngày gửi Ngày gửi
Liên hệ QC

M@trixs

Thành viên thường trực
Tham gia
3/3/11
Bài viết
257
Được thích
336
Hiện tại M@trixs có 1 file sử dụng Validation để kiểm tra những ô nhập vào xem có trùng với ô trước đó không. Những ô không cần thiết M@trixs đã dùng chức năng Protect để không cho người dùng nhập liệu sai làm chương trình chạy sai theo.

http://www.mediafire.com/download.php?poavr6c684losu7

Như trong file đính kèm thì ta cần kiểm tra xem "Chân Hụi Được Hốt" nhập vào có bị trùng hay không. Ở chế độ không khóa (UnProtect) thì vẫn chạy ầm ầm tức nếu nhập trùng báo liền. Nhưng khi ở chế độ khóa (Protect) thì nó lại đứng im trêu ngươi mới tức chứ.

Bác nào coi giúp được M@trixs thì bày cho M@trixs với. Chân thành cảm ơn nhiều !
 
Lần chỉnh sửa cuối:
Hiện tại M@trixs có 1 file sử dụng Validation để kiểm tra những ô nhập vào xem có trùng với ô trước đó không. Những ô không cần thiết M@trixs đã dùng chức năng Protect để không cho người dùng nhập liệu sai làm chương trình chạy sai theo.

http://www.mediafire.com/download.php?poavr6c684losu7

Như trong file đính kèm thì ta cần kiểm tra xem "Chân Hụi Được Hốt" nhập vào có bị trùng hay không. Ở chế độ không khóa (UnProtect) thì vẫn chạy ầm ầm tức nếu nhập trùng báo liền. Nhưng khi ở chế độ khóa (Protect) thì nó lại đứng im trêu ngươi mới tức chứ.

Bác nào coi giúp được M@trixs thì bày cho M@trixs với. Chân thành cảm ơn nhiều !
Bạn thử dùng code sau thay cho sub Worksheet_SelectionChange xem sao:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Cll As Range
    If Not Intersect(Target, [E7:IT7]) Is Nothing And Target.Count = 1 Then
        If Target <> "" Then
            Set Cll = Range([E7], Target.Offset(, -1)).Find(Target, , , xlWhole)
            If Not Cll Is Nothing Then
                MsgBox "So nay da duoc nhap tai o " & Cll.Address(0, 0)
                Target.ClearContents
                Target.Select
            End If
        End If
    End If
End Sub
 
Code sai tè le
Sao lại dùng sự kiện selection_Change? Hơi nhúc nhích ô chọn là chạy code.
Cells(1) là ô nào?
Sao Set LastCell = ActiveCell và lại để cuối code?

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
    If Not Intersect(Target, Range("E7:IT7")) Is Nothing And  Target.Count = 1 Then
  Cells(1, 1) = "=COUNTIF(E7:IT7," & Target.Value & ")"
    If Cells(1, 1) = 0 Then Exit Sub
    If Cells(1, 1) > 1  Then
      MsgBox "Phan hui nay da co nguoi hot. Hay nhap chan khac de co the tiep tuc...."
      Target.ClearContents
      Beep
    End If
End If
End Sub
Phải unlock ô A1.
 
Lần chỉnh sửa cuối:
Cảm ơn 2 bạn. Đặc biệt là bạn PTM0412....

Đúng thiệt là do mình Set tùy chọn Lock cho A1 nên nó mới không chạy

Còn Code luộm thuộm là do mình "mượn đầu heo nấu cháo", gom góp mỗi nơi 1 ít nên mới thành ra thế. May có các bạn giúp đỡ thành thật cảm ơn !
 
Web KT

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

Back
Top Bottom