Code Để chặn việc nhập giữ liệu trùng

Liên hệ QC

manhhung12

Thành viên thường trực
Tham gia
20/3/08
Bài viết
232
Được thích
88
Chào cá bạn.
Mình có vấn đè như sau nhờ các bạn giúp đỡ:
Khi nhập thời gian chấm công ca làm việc cho 1 người trogn 1 bộ phận nào đó trong 1 tháng lựa chọn mình làm như sau:
1/ tạo tên file gồm : tenbophan+namlv
2/các sheet trong file có tên: manv+thang
3/các cột trong sheet:
- cot 1: ngay
- cot 2: giobatdau
- cot 3: gioketthuc
- cot 4: noidunglamviec
Đến đây mới xuất hiện vấn đề cần giải quyết:
Đối với 1 người và tại 1 ngày làm việc làm sao kiểm tra ở các lần nhập dữ liệu không có nhập trùng thời gian làm việc. Ví dụ:
Thay vì nhập đúng như sau:
Từ 0 giờ đến 4 giờ, công việc họ làm là : sơn cửa.
Từ 4 giờ đến 6 giờ, công việc họ làm là : hàn cửa.

Thì lại nhập trùng thời gian như sau:
Từ 0 giờ đến 4 giờ, công việc họ làm là : sơn cửa.
Từ 3 giờ đến 6 giờ, công việc họ làm là : hàn cửa.
(đúng là từ 4 giờ chứ kg phải 3 giờ)-> nhập sai ->có thông báo nhập lại
hoặc nhập:
Từ 0 giờ đến 4 giờ, công việc họ làm là : sơn cửa.
Từ 2 giờ đến 3 giờ, công việc họ làm là : hàn cửa.
(đúng là từ 4 giờ đến >=4 giờ) -> nhập sai-> có thông báo nhập lại

Nghĩa là giờ bắt đầu của phiên làm việc kế sau không nhỏ hơn giờ kết thúc của phiên kế trước.
Mong các bạn góp ý:
Cách tổ chức dữ liệu và cách viết code để chặn lỗi nhập liệu
Xin cảm ơn (tôi gửi kèm file)
 

File đính kèm

Mình tham gia thôi, bạn nên lập 1 hàm kiểm tra tìm ra giá trị Max của giờ kết thúc với điều kiện cột ngày bằng textbox ngày. Nếu giá trị nhập bắt đầu nhỏ hơn Max kết thúc thì hàm báo lỗi và cảnh báo
 
Upvote 0
Chặn việc nhập giữ liệu trùng dữ liệu

Không cần thiết phải dùng VBA, bạn tham khảo file này.
- Nếu muốn sửa lại công thức thì vào Data > Validation > Settings
- Nếu muốn sửa nội dung hoặc kiểu cảnh báo thì vào tiếp Error Alert
Chúc thành công !
 

File đính kèm

Upvote 0
Không cần thiết phải dùng VBA, bạn tham khảo file này.
- Nếu muốn sửa lại công thức thì vào Data > Validation > Settings
- Nếu muốn sửa nội dung hoặc kiểu cảnh báo thì vào tiếp Error Alert
Chúc thành công !

Bạn nói vậy là hiểu nhầm ý tôi rồi. Tôi đang thao tác trên form nên code bằng vba mà thôi.
 
Upvote 0
Gởi bạn manhhung12

Tôi chưa học qua VBA nên không thể chỉnh sửa trên file của bạn. Tôi có kèm theo file sau có code như đề cập, đoạn mã này không phải do tôi viết nhưng tôi có điều chỉnh cho phù hợp với yêu cầu của tôi cho việc chặn nhập mã trùng trên workbook không biết có giúp cho bạn được không?

nhìn Form của bạn tôi rất muốn học hỏi nhưng chưa "lĩnh giáo" nỗi và các doan code trong form bi lỗi nên tôi không thể chạy được, hy vọng bác kiểm tra hoàn chỉnh và post lại để tôi có thể học hỏi.

quên hướng dẫn vị trí cần chặn nhập trùng. post file lại

Gởi bạnh manhhung12

toi bam vao nut CHAM CONG tren form frChcong co loi tren doan code "Private Sub UserForm_Initialize()" theo nhu hinh dinh kem

mong ban chi giup
 

File đính kèm

Upvote 0
Lỗi rất có thể bạn mở trực tiếp từ Winrar. Bạn giải nén xong rồi mới mở sẽ được thôi.
 
Upvote 0
Gởi bạnh manhhung12

toi bam vao nut CHAM CONG tren form frChcong co loi tren doan code "Private Sub UserForm_Initialize()" theo nhu hinh dinh kem

mong ban chi giup
à có lẽ do tên file tôi tao là có 9 ký tự, trong đó 4 ký tự cuối là năm làm việc. Bạn chép file vê và dặt tên với quy ước như sau:
"?????NAMX.xls". (NAMX la 4 ký tự đại diện cho năm làm việc ví dụ ABCDE2007.xls hay abcde2008.xls
Tôi đang hoàn thiện file nếu bạn muốn tôi sẽ gửi cho bạn
Thân
 
Upvote 0
Goi ban manhhung12

Cảm ơn bạn đã trả lời, tôi nhận file của bạn chính xac là CPE142008.xls như bạn đề cập nhưng vẫn bi lỗi, mong bạn goi lại cho tôi file đã hoàn thiện của bạn qua forum này hoặc địa chỉ vncnghia@yahoo.com

Rất cảm on bạn.

Nghĩa
 
Upvote 0
Goi ban manhhung12

Cảm ơn bạn đã trả lời, tôi nhận file của bạn chính xac là CPE142008.xls như bạn đề cập nhưng vẫn bi lỗi, mong bạn goi lại cho tôi file đã hoàn thiện của bạn qua forum này hoặc địa chỉ vncnghia@yahoo.com

Rất cảm on bạn.

Nghĩa
Đây tôi gửi file cho bạn đây.
Lưu ý:
1/Ban giải nén và copy vào bất cứ thư mục nào bạn rồi click đúp vào file để chạy.
2/Trong ct tôi cho ârn các Sheet dữ liệu. Nếu bạn cần xem nó thì khi đã chay ct bạn không nhấn vào bất cứ vào 1 nào trong 3 nút (Danh_sach/Cham_cong/Thoat) mà bấm vào góc trên phải của form (dấu X màu đỏ) tiếp tục-> alt + F11 -> chọn Sheet1/sheet2/...-> chọn giá trị Visible = xlsheetvisible để hiện sheet đó lên
3/Trong form chấm công thực hiện cho 1 nhân viên tại 1 tháng nào đó trong năm = năm mình tạo ở cuối tên file ví dụ: CPE142007 là chấm công cho các tháng năm 2007; ở đay chương trình tự động xác định số ngày có trong 1 tháng của năm đó tránh trường hợp nhầm lẫn tháng của năm khác nhau.
4/Các bẫy nhập liệu tôi đã chặn theo quy ước của người sử dụng. Ví dụ Ca LV không trùng trong 1 ngày, nếu trước đó đã nhập cho ca 01 thì kg được nhập trùng (trường hợp thêm DL: Insert) còn nếu sửa thì cho sửa (edit) thì thoải mái....
5/Nút Print tôi còn để troóng vì chưa biết y/c của người sử dụng thế nào( Họ đang đi công tác)
Bạn cứ thao tác và tìm hiểu có gì liên lạc với tôi hoặc PM cho tôi
Thân. Chúc thành công
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Gởi manhhung12

cảm ơn sự nhiệt tình của bạn đã gởi file cho tôi, tôi đang nghiên cứu file của bạn. Tôi phải đi học VBA thôi vì sau khi tìm hiểu thấy nhiều điều mình không biết tại sao.

Cảm ơn bạn nhiều.

Nghĩa
 
Upvote 0
Gởi manhhung12

cảm ơn sự nhiệt tình của bạn đã gởi file cho tôi, tôi đang nghiên cứu file của bạn. Tôi phải đi học VBA thôi vì sau khi tìm hiểu thấy nhiều điều mình không biết tại sao.

Cảm ơn bạn nhiều.

Nghĩa
Có gì bạn cứ hỏi. Tôi cũng kg phải chuyên gia nhưng cái nào mình nắm được là trả lời cho bạn. Một kinh nghiệm của tôi là: Đẻ viết 1 ct làm 1 việc gì thì nên hình dung ra cơ sở dữ liệu trước. CSDL chi tiết/đầy đủ và logic/hợp lý(tất nhiên là không phải kể lể/liệt kê) thì khi code càng dễ đạt được mong muốn.
Chúc thành công.
 
Upvote 0
Web KT

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

Back
Top Bottom