Sửa code VBA nhập liệu userform (2 người xem)

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

Tôi tuân thủ nội quy khi đăng bài

antudo

Thành viên mới
Tham gia
22/1/18
Bài viết
6
Được thích
0
Giới tính
Nam
Dạ Chào Anh chị,
Em đang gặp lỗi code thêm hình ảnh và ngày tháng đảo lộn trong file nhập liệu nhân sự bằng userform
Nhờ anh chị hỗ trợ sửa giúp em với ạ
Em cám ơn ạ,
 

File đính kèm

Dạ Chào Anh chị,
Em đang gặp lỗi code thêm hình ảnh và ngày tháng đảo lộn trong file nhập liệu nhân sự bằng userform
Nhờ anh chị hỗ trợ sửa giúp em với ạ
Em cám ơn ạ,
Để nguyên câu hỏi này, nếu không mô tả thêm cụ thể như thế nào thì chẳng hiểu gì để giúp.
 
Upvote 0
Để nguyên câu hỏi này, nếu không mô tả thêm cụ thể như thế nào thì chẳng hiểu gì để giúp.
Vâng, sorry ạ
Em xin miêu tả kỹ hơn về 2 lỗi, như sau:
1- Lỗi 1: Thêm hình ảnh
Private Sub CMDADDPHOTO_Click()
Dim x As Integer
Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False
x = Application.FileDialog(msoFileDialogOpen).Show
If x <> 0 Then
FPATH = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
Image1.Picture = LoadPicture(FPATH)
Image1.PictureSizeMode = 1
End If
End Sub
2- Lỗi định dạng ngày/tháng/năm
Ví dụ:
- Với ngày 19/5/2025 thì sẽ không bị lỗi ở cả userform và excel
- Nhưng với ngày 3/5/2025 thì userform không lỗi, lỗi hiển thị ở excel (ngược sang tháng/ngày/năm)
Chi tiết Anh chị xem giúp code nhé ạ
Tks,
 
Upvote 0
Đầu tiên mình muốn lưu ý với bạn là vấn đề thiết kế CSDL;
1./ Mã số nhân viên
Hiện bạn đang xài dẫy số vô tri giác;
Nếu là mình thì xài bộ mã sau:

1760778873147.png

2./ Cũng trang CSDL này cần tách ra thành chí ít là 3 trang tính;
Trang đầu là những gì bất biến trong đời người sẽ lao động ở cơ quan bạn;
Ví du [Mã NV], [HoTen], [Ngày sinh], [Giới tính], [Địa chỉ], [SĐT],. . . .
Trang thứ 2 sẽ là
[Mã NV], [Ngày], Loại HĐLĐ], [Ghi chú]
Trang thứ 3 sẽ là về BHXH:
[Mã NV], [Số sổ BHXH], [Hôn nhân], [QH], [Họ tên người QH], [Ghi chú]
Hai trang này ghi dữ liệu theo chiều dọc; Không phải chiều ngang như bạn đang làm;

. . . .
 
Lần chỉnh sửa cuối:
Upvote 0
Em đang gặp lỗi code thêm hình ảnh và ngày tháng đảo lộn trong file nhập liệu nhân sự bằng userform
1. Thêm hình ảnh: Userform chỉ chấp nhận file ảnh với định dạng: jpg, bmp, svg. Do đó nếu bạn chọn khác định dạng (png) sẽ báo lỗi. Để giới hạn chỉ chọn file đúng định dạng thì bạn phải thiết lập thuộc tính Filter (chỉ hiển thị file jpg, bmp) trong hộp thoại chọn file để người dùng dễ lựa chọn.
2. Ngày tháng: Theo tôi biết VBA xử lý ngày tháng theo dạng mm/dd/yyyy. Do đó bạn phải xử lý ngay ở Textbox nhập liệu.
- Textbox ngày phải nhập dạng: dd/mm/yyyy. 2 ký tự ngày, 2 ký tự cho tháng và 4 ký tự cho năm. Bạn phải bẫy lỗi nhập liệu này để người dùng nhập cho đúng định dạng.
- Code chuyển đổi ngày như bên dưới.

Screenshot at Oct 18 18-48-36.png

3. Form còn nhiều lỗi nhập liệu:
- Khi mở form, bấm thêm mới sẽ thêm liên tục mặc dù không có dữ liệu.
- Sau khi nhập msnv, bấm Search sẽ nạp dữ liệu lên UF. Bấm cập nhật nó sẽ tạo thêm dòng mới giống như vậy --> lỗi trùng dữ liệu.
- Nói chung khi mở UF lên, bấm lung tung các nút lệnh sẽ thấy lỗi tùm lum.
- Form cập nhật dữ liệu lâu mặc dùng không có nhiều trường dữ liệu.
- Form nên thiết kế tách thông tin thành các tab (TabStrip) để dễ nhìn vào nhập liệu. VD: thông tin người phụ thuộc tách ra 1 tab khác.
- Nên dùng vòng lặp duyệt qua các control (textbox, comboBox...) để cập nhật giá trị từ Userform xuống sheet và ngược lại để code ngắn gọn hơn và cũng dễ điều chỉnh. (Thay vì gán từng textbox xuống từng cell như hiện tại).

Tham khảo:

Screenshot 2025-10-18 at 16.56.28.png

Screenshot 2025-10-18 at 16.56.38.png
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom