[Chia sẻ] File code VBA cho combobox nhập liệu, tùy biến để dễ dàng kết hợp vào file của bạn.

Liên hệ QC

Maika8008

Thành viên gạo cội
Tham gia
12/6/20
Bài viết
4,764
Được thích
5,724
Donate (Momo)
Donate
Giới tính
Nam
Về việc dùng combobox để tìm và nhập dữ liệu trực tiếp trên trang tính thì GPE có nhiều, nhưng nếu muốn sửa lại để dùng cho trường hợp cụ thể của bạn thì khá khó khăn nếu không rành về VBA.

Trong file này, tôi cố gắng viết code để đơn giản hóa việc chỉnh sửa kia, làm sao không những dễ cho người dùng mà ngay cả chính tôi sau 1 thời gian dài cũng không phải mất công bóp trán sửa để dùng cho một cách nào đó.

1. Đầu tiên bạn phải có danh mục làm nguồn cho combobox. Danh mục bao nhiêu cột là do yêu cầu quản lý mỗi người nhưng tối thiểu phải có 2 cột Mã số và Tên (hoặc diễn giải) - Hình 1 là danh mục hàng hóa gồm 5 cột như sau (Lưu ý để khai báo khi dùng: tôi bố trí dữ liệu đầu tiên là ô B2):
1650291605178.png
2. Cấu trúc vùng dữ liệu khi nhập, phổ biến một trong hai cách sau Mã - Tên hoặc Tên - Mã - Hình 2 (Lưu ý khi khai báo: Sheet chứa danh mục có tên là DM)
1650291752960.png
3. Khi cần nhập theo kiểu Mã - Tên, ở bước khai báo hãy nhập cột thứ nhất nhỏ hơn (<) cột thứ hai (Ví dụ tại hình 2, bạn cần nhập cột thứ nhất là 1 (tức là cột A) và cột thứ hai là 2 (là cột B) - Hình 3 là giao diện khi nhập kiểu này.
1650292063125.png
4. Nhập theo kiểu Tên - Mã, ở bước khai báo hãy nhập cột thứ nhất lớn hơn (>) cột thứ hai. Ví dụ: Cột thứ nhất nhập số 2 (tức cột B), cột thứ hai nhập số 1 (tức cột A). Hình 4 là giao diện kiểu nhập liệu này:
1650292252233.png
5. Khai báo trực tiếp trong code 2 thông tin như mục 1 và 2 đã nói - Hình 5 - Trong file, Sub KhaiBao chạy bằng phím tắt Ctrl+Shift+K. Nếu bạn dùng thực thì cài lại phím tắt hoặc chạy trực tiếp từ cửa sổ VBE. Việc khai báo này làm khi mở file, hoặc khi đổi sheet nhập liệu, hoặc cuối cùng là khi lỡ dừng code đột ngột.
1699275592431.png
6. Bạn chạy thử để biết việc tùy biến số cột Danh mục dùng cho combobox và ghi lên trang Data hoạt động ra sao. Nếu có lỗi là lỗi ở đây do tôi chưa kiểm tra kỹ. Nếu có lỗi xảy ra, hãy bình luận ở đây để tôi chỉnh sửa.
Lưu ý khi chèn combobox vào trang tính của bạn: hãy vào Developer, bấm Design Mode rồi copy combobox của file này sang để khỏi mất công thiết lập lại các thuộc tính mà tôi đã lập.

Cập nhật 22/04/2022: Thêm thiết lập dành cho ai chỉ cần nhập mã số nhưng tìm danh sách theo tên hàng:
=> Khai báo: Cột 2 lớn hơn Cột 1 một đơn vị và số cột cho combobox là 1 (VD: Cột 2 = 3, Cột 1 = 2 và số cột = 1)
Cập nhật 06/11/2023: Thêm khai báo dòng đầu tiên của dữ liệu (trong file mẫu là dòng 2: FrwData = 2). Sau khi thử nghiệm thành công, bạn vào Sub KhaiBao để đặt cố định các cột thay cho việc phải nhập qua Inputbox
 

File đính kèm

Lần chỉnh sửa cuối:
Cám ơn Maika8008 rất nhiều, Tools rất có ích.
Tôi đang áp dụng nhưng gặp vấn đề về code VBA như sau:
Khi nhập dữ liệu vào Combo Box mà muốn sử dụng được phím Dellete, Back Space, Tab đều không được. Nhờ bạn code hộ mấy cái Case:
- Tab: Nhảy sang ô tiếp theo cùng hàng
- Dellete: Xóa toàn bộ dữ liệu đã nhập vào và di chuyển con trỏ về đầu tiên.
- Back space: Xóa lùi 1 ký tự vừa nhập vào.
Thanks so much!
Bài đã được tự động gộp:

Cám ơn Maika8008 rất nhiều, Tools rất có ích.
Tôi đang áp dụng nhưng gặp vấn đề về code VBA như sau:
Khi nhập dữ liệu vào Combo Box mà muốn sử dụng được phím Dellete, Back Space, Tab đều không được. Nhờ bạn code hộ mấy cái Case:
- Tab: Nhảy sang ô tiếp theo cùng hàng
- Dellete: Xóa toàn bộ dữ liệu đã nhập vào và di chuyển con trỏ về đầu tiên.
- Back space: Xóa lùi 1 ký tự vừa nhập vào.
Thanks so much!
Bài đã được tự động gộp:

Cám ơn Maika8008 rất nhiều, Tools rất có ích.
Tôi đang áp dụng nhưng gặp vấn đề về code VBA như sau:
Khi nhập dữ liệu vào Combo Box mà muốn sử dụng được phím Dellete, Back Space, Tab đều không được. Nhờ bạn code hộ mấy cái Case:
- Tab: Nhảy sang ô tiếp theo cùng hàng
- Dellete: Xóa toàn bộ dữ liệu đã nhập vào và di chuyển con trỏ về đầu tiên.
- Back space: Xóa lùi 1 ký tự vừa nhập vào.


Thanks so much!
Rất tiếc không thể đáp ứng yêu cầu của bạn được.
 
Upvote 0
Web KT

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

Back
Top Bottom