Nhập dữ liệu sai Cần thông báo lỗi (1 người xem)

Liên hệ QC

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

ngodany135

Thành viên thường trực
Tham gia
1/12/10
Bài viết
346
Được thích
522
Nghề nghiệp
GIÁO VIÊN
Mình có 1 file khi nhập dữ liệu sai cần hiện ra thông báo lỗi. Đừng dùng VBA và Data-Validation. Cảm ơn
 

File đính kèm

Nếu dùng Data-Validation thì vẫn có trường hợp nhập sai. Còn dùng VBA thì mình không hiểu về nó. Vậy theo anh có thể dùng hàm mà vẫn có thông báo lỗi không. Nếu không được thì anh dùng VBA cho em xem mà học hỏi luôn. Cảm ơn anh.
 
Còn 1 cách cuối cùng là Conditional formating, chịu không thì nói.
 
hẳn nhiên là đồng ý rồi. Cảm ơn sư phụ.
 
Lần chỉnh sửa cuối:
Nhập dữ liệu sai

ô I4:ô I7 em cố định rồi, phải là các lớp đó. Bây giờ nhập trong Data nó vẫn sai khi nhập lớp. Anh xem thử File của em làm có gì góp ý cho em với.
 

File đính kèm

Lần chỉnh sửa cuối:

File đính kèm

- Như gì là tốt rồi. Tuy nhiên viết code cho em xem với, thông báo lỗi nếu nhập sai. Trân thành cảm ơn mấy anh.
 
Cả 3 cách có lẽ chỉ dùng 1 thuật toán.
Validation Dùng list như trong file, khi chọn trong list mà không có trong chuỗi cột I nó đâu có la lên. Validation cũng phải dùng công thức như Conditional formatting.
Công thức của sư phụ vẫn có sơ sót: Nếu nhập "6a" thì nó chẳng "nói" gì
Em nghĩ công thức nên sửa thành vậy mời chắc ăn:
PHP:
=AND(C4<>"",ISERROR(FIND(" "&C4&" "," "&SUBSTITUTE($I$4,","," ")&" ")))
Nếu dùng Validation hay code VBA thì cũng tương tự
-----------------
Ngoài ra còn 1 chuyện chưa thấy tác giả nói đến: Giả sử ta đã nhập "6a2" vào cell C4 rồi thì những cell còn lại có cho phép nhập "6a2" nữa không? Tức có cho phép nhập trùng hay không?
 
Lần chỉnh sửa cuối:
Em nghĩ công thức nên sửa thành vậy mời chắc ăn:
=AND(C4<>"",ISERROR(FIND(" "&C4&" "," "&SUBSTITUTE($I$4,","," ")&" ")))


Nếu dùng ký tự " " bao đầu bao cuối chi bằng dùng ngay ký tự ",", khỏi Substitute:

=AND(C4<>"";ISERROR(FIND(","&C4&",";","&$I4&",")))

Còn tránh nhập trùng thì thêm 1 điều kiện Or:

=AND(C4<>"";OR(ISERROR(FIND(","&C4&",";","&$I4&","));COUNTIF($C4:$H4;C4)>1))

Ngodany chú ý các dấu $, chỗ có chỗ không nhé. Anh ndu dư 1 dấu $ trong $I$4 đó.
 
Lần chỉnh sửa cuối:
Hẳn nhiên trùng là không được. Em test nãy giờ mà vẫn chưa được nữa. Trong khi làm theo cách của NDU96, em mong các anh viết cho em code luôn dùm, để em học hỏi. Cảm ơn các anh trước
 
Lần chỉnh sửa cuối:


Nếu dùng ký tự " " bao đầu bao cuối chi bằng dùng ngay ký tự ",", khỏi Substitute:

=AND(C4<>"";ISERROR(FIND(","&C4&",";","&$I4&",")))
.
Lúc đầu em cũng nghĩ vậy cho gọn, nhưng chợt nhớ lần trước có đại ca nào đó bị chiêu này rồi: Lúc đầu nói dữ liệu là 6a2,6a3,6a4,6a5 (không có khoảng trắng) nhưng sau đó lại nhập thành 6a2, 6a3, 6a4, 6a5 (có khoảng trắng) ---> Hic! thế là "la làng"
 
Web KT

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

Back
Top Bottom