Cách đặt bẫy lỗi dựa vào Data Validation hoặc code (3 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

minhbinhduong

Thành viên mới
Tham gia
29/5/08
Bài viết
1
Được thích
0
Nghề nghiệp
Công chức
Xin chào các pro, các mem !

Mình đang gặp một vấn đề lay hoay hoài mà chưa giải quyết được. Rất mong các pro, các mem hướng dẫn, trợ giúp.
Vấn đề của mình :
Mình muốn đặt bẫy lỗi cho một vùng (hàng ngang gồm 4 cột : A, B, C, D). Khi nhập "x" vào một trong các ô A, B, C, D bất kỳ thì lập tức các ô còn lại (A or B or C or D) bị lock hoặc cảnh báo không được nhập "x" nữa.

Các pro hướng dẫn giúp dùm (bằng data validation hoặc code cũng được).
Xin chân thành cảm ơn.
(Xin đính kèm file)
 

File đính kèm

1. Quét chọn vùng C8:F63
2. Vào Data ---> Validation, thẻ setting, Allow chọn custom, Formula điền công thức =COUNTIF($C8:$F8;"x")=1
3. Error Alert chọn Style là Stop. Title ghi "Cảnh báo", Error massage ghi "Dữ liệu đã được nhập". Bấm Ok. Bây giờ bạn hãy thử hiệu ứng!!!
 
Xin chào các pro, các mem !

Mình đang gặp một vấn đề lay hoay hoài mà chưa giải quyết được. Rất mong các pro, các mem hướng dẫn, trợ giúp.
Vấn đề của mình :
Mình muốn đặt bẫy lỗi cho một vùng (hàng ngang gồm 4 cột : A, B, C, D). Khi nhập "x" vào một trong các ô A, B, C, D bất kỳ thì lập tức các ô còn lại (A or B or C or D) bị lock hoặc cảnh báo không được nhập "x" nữa.

Các pro hướng dẫn giúp dùm (bằng data validation hoặc code cũng được).
Xin chân thành cảm ơn.
(Xin đính kèm file)

Làm như sau:
- Quét chọn C8:F63
- Vào Data\Validation, khung Allow chọn Custom, khung Formula gõ công thức =COUNTA($C8:$F8)<2
Xong!
 
1. Quét chọn vùng C8:F63
2. Vào Data ---> Validation, thẻ setting, Allow chọn custom, Formula điền công thức =COUNTIF($C8:$F8;"x")=1
3. Error Alert chọn Style là Stop. Title ghi "Cảnh báo", Error massage ghi "Dữ liệu đã được nhập". Bấm Ok. Bây giờ bạn hãy thử hiệu ứng!!!
Làm như sau:
- Quét chọn C8:F63
- Vào Data\Validation, khung Allow chọn Custom, khung Formula gõ công thức =COUNTA($C8:$F8)<2
Xong!
Em nghĩ là nên sử dụng code, vì Data Validation có thể coppy paste mà không bẫy được lỗi.
Không biết code cùi bắp này có sử dụng được không, nhờ Thầy dồn vào 1 code dùm:
[gpecode=vb]
Private Sub Worksheet_Change(ByVal Target As Range)
Dim eR As Long, Rng As Range
eR = [A65535].End(3).Row
Set Rng = Range([B8], Cells(eR, 6))
If Not Intersect(Target, Rng) Is Nothing Then
If Application.CountIf(Range(Cells(Target.Row, 2), Cells(Target.Row, 6)), "x") > 1 Then
MsgBox "Chi Nhap 1 Dau x"
Target = ""
End If
End If
End Sub
[/gpecode]
Ngăn coppy paste:
[gpecode=vb]
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim eR As Long, Rng As Range
eR = [A65535].End(3).Row
Set Rng = Range([B8], Cells(eR, 6))
If Not Intersect(Target, Rng) Is Nothing Then
Application.CutCopyMode = False
End If
End Sub
[/gpecode]
 

File đính kèm

Web KT

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

Back
Top Bottom