[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. (1 người xem)

Liên hệ QC

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

Maika8008

Thành viên gạo cội
Tham gia
12/6/20
Bài viết
4,764
Được thích
5,740
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:
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):
View attachment 274636
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)
View attachment 274637
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.
View attachment 274638
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:
View attachment 274639
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.
View attachment 274640
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.
Ở sheet Data vị trí bắt đầu bảng nhập liệu nằm ở ô A2, nếu muốn thay đổi vị trí bắt đầu bảng nhập liệu này thì chỉnh ở đâu trong code, nhờ anh chỉ giúp. Em có xem bài anh tặng file quản lý vật tư - công nợ trước đây, anh có thêm nút on/off này khá thuận tiên trong việc copy - paste. Bản thân em khi sử dụng combobox nhập liệu rất dễ dàng, tuy nhiên khi không cần nhập liệu mà cần xử lý thì khá vướng víu, nếu có thể on/off nhập liệu rất thuận tiện.

Cảm ơn anh.

1650360690263.png
 

File đính kèm

  • 1650360685656.png
    1650360685656.png
    3.1 KB · Đọc: 20
Lần chỉnh sửa cuối:
Upvote 0
Ở sheet Data vị trí bắt đầu bảng nhập liệu nằm ở ô A2, nếu muốn thay đổi vị trí bắt đầu bảng nhập liệu này thì chỉnh ở đâu trong code, nhờ anh chỉ giúp. Em có xem bài anh tặng file quản lý vật tư - công nợ trước đây, anh có thêm nút on/off này khá thuận tiên trong việc copy - paste. Bản thân em khi sử dụng combobox nhập liệu rất dễ dàng, tuy nhiên khi không cần nhập liệu mà cần xử lý thì khá vướng víu, nếu có thể on/off nhập liệu rất thuận tiện.

Cảm ơn anh.

View attachment 274704
Ở mục 1 tôi có nói là danh mục tôi bố trí bắt đầu ở B2 đó bạn. Bạn theo đó mà làm nhé
 
Upvote 0
Ở mục 1 tôi có nói là danh mục tôi bố trí bắt đầu ở B2 đó bạn. Bạn theo đó mà làm nhé
Chỗ bắt đầu lấy dữ liệu của sheet DM thì em hiểu rồi anh, tuy nhiên khi nhập liệu ở sheet Data thay vì mặc định bắt đầu từ ô A2 như hiện tại thì làm sao để thay đổi được anh, ví dụ em muốn bắt đầu từ ô B4 chẳng hạn.
 
Upvote 0
Chỗ bắt đầu lấy dữ liệu của sheet DM thì em hiểu rồi anh, tuy nhiên khi nhập liệu ở sheet Data thay vì mặc định bắt đầu từ ô A2 như hiện tại thì làm sao để thay đổi được anh, ví dụ em muốn bắt đầu từ ô B4 chẳng hạn.
Trong thủ tục này:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim chk As Boolean
If ShName = "" Then KhaiBao
For Each ssh In Worksheets
If ssh.Name = ShName Then chk = True: Exit For
Next
If chk = False Then MsgBox "Ten sheet khong dung!": Exit Sub
With Sheets(ShName)

If Target.Count = 1 And Target.Row > 1 Then
.............

Thay Target.Row > 1 bằng Target.Row > 3 thì chỉ khi bấm dòng 4 trở lên mới hiện combobox
 
Upvote 0
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):
View attachment 274636
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)
View attachment 274637
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.
View attachment 274638
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:
View attachment 274639
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.
View attachment 274640
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.
Bạn cho mình hỏi cái combobox này mình click vô mình đánh chữ vẫn hiện ra những từ gợi ý phải không bạn, mình thấy hình như vậy.
 
Upvote 0
Upvote 0
Cập nhật 22/04/2022: Thêm thiết lập để chỉ cần nhập mỗi mã số nhưng muốn 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ị
- Số cột cho combobox là 1

(VD: Cột 2 = 3, Cột 1 = 2 và số cột = 1)
 
Upvote 0
Bạn cho mình hỏi:
1) Muốn bỏ combo box ở cột B sheet DATA thì làm như thế nào :)
2) Mình muốn gán 3 thông số khi khai báo lúc mở file lần lượt là (1) (2) và (1) (Thêm thiết lập để chỉ cần nhập mỗi mã số nhưng muốn tìm danh sách theo tên hàng) thì làm như thế nào nhỉ :)
Cám ơn bạn rất nhiều.
 
Lần chỉnh sửa cuối:
Upvote 0
e muốn dùng combobox cho nhiều cột thì làm cách nào ạ
 
Upvote 0
Bạn cho mình hỏi:
1) Muốn bỏ combo box ở cột B sheet DATA thì làm như thế nào ?
2) Mình muốn gán 3 thông số khi khai báo lúc mở file lần lượt là (1) (2) và (1) (Thêm thiết lập để chỉ cần nhập mỗi mã số nhưng muốn tìm danh sách theo tên hàng) thì làm như thế nào?
Cám ơn bạn rất nhiều.
 
Upvote 0
Bạn cho mình hỏi:
1) Muốn bỏ combo box ở cột B sheet DATA thì làm như thế nào ?
2) Mình muốn gán 3 thông số khi khai báo lúc mở file lần lượt là (1) (2) và (1) (Thêm thiết lập để chỉ cần nhập mỗi mã số nhưng muốn tìm danh sách theo tên hàng) thì làm như thế nào?
Cám ơn bạn rất nhiều.
Bạn cứ thử gán 2, 1, 1 rồi chạy xem nó như thế nào.
 
Upvote 0
Bạn cứ thử gán 2, 1, 1 rồi chạy xem nó như thế nào.
Do mình nói không rõ nên làm bạn hiểu lầm. Ý mình là gán cố định (tức là điền trực tiếp 3 thông số này vào code) thì mình sẽ thay đổi dòng code nào của bạn? Mục đích của mình là không tốn thời gian nhập 3 thông số trên mỗi khi mở file. Cám ơn bạn rất nhiều.
 
Upvote 0
Do mình nói không rõ nên làm bạn hiểu lầm. Ý mình là gán cố định (tức là điền trực tiếp 3 thông số này vào code) thì mình sẽ thay đổi dòng code nào của bạn? Mục đích của mình là không tốn thời gian nhập 3 thông số trên mỗi khi mở file. Cám ơn bạn rất nhiều.
1. Xóa sự kiện Workbook_Open trong module ThisWorkbook.
2. Ở sub KhaiBao của module sheet Data, gán thẳng Col1=x, Col2=y, Cols=z thay cho Inputbox(...)
 
Upvote 0
1. Xóa sự kiện Workbook_Open trong module ThisWorkbook.
2. Ở sub KhaiBao của module sheet Data, gán thẳng Col1=x, Col2=y, Cols=z thay cho Inputbox(...)
Cám ơn bạn, mình đã làm được.
Bạn cho mình hỏi thêm. Khi cập nhật thông tin cho sheet DM, mình phải save, tắt và mở lại thì dữ liệu mới được cập nhật. Không biết có cách nào để mình chỉ cần save thì dữ liệu sẽ được cập nhật vào khung gợi ý không :)
 
Upvote 0
Cám ơn bạn, mình đã làm được.
Bạn cho mình hỏi thêm. Khi cập nhật thông tin cho sheet DM, mình phải save, tắt và mở lại thì dữ liệu mới được cập nhật. Không biết có cách nào để mình chỉ cần save thì dữ liệu sẽ được cập nhật vào khung gợi ý không :)
Được chứ. Tôi quên mất việc này.
 
Upvote 0
Được chứ. Tôi quên mất việc này.
Làm phiền bạn lần cuối, bạn cho mình hỏi cách tắt combobox ở cột B sheet DATA. Vì sau khi nhập Mã sản phẩm (vào cột A) thì mình sẽ nhập tiếp số lượng vào cột B.
Code combobox của bạn rất tuyệt. Chúc bạn một ngày tốt lành.
 
Upvote 0
Làm phiền bạn lần cuối, bạn cho mình hỏi cách tắt combobox ở cột B sheet DATA. Vì sau khi nhập Mã sản phẩm (vào cột A) thì mình sẽ nhập tiếp số lượng vào cột B.
Code combobox của bạn rất tuyệt. Chúc bạn một ngày tốt lành.
Bài #13 bạn đã hỏi và tôi trả lời tại #14. Tôi vẫn hiểu câu hỏi của bạn mà. Bạn chưa thử gán như vậy sao?

P/S:
1. Tôi chỉ dẫn sai ở bài #16. Bạn chỉ cần làm mục 2 thôi.
2. Trả lời cho #17: Bạn chép đoạn code sau vào module ThisWorkbook
Rich (BB code):
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Sheet2.KhaiBao
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Bài #13 bạn đã hỏi và tôi trả lời tại #14. Tôi vẫn hiểu câu hỏi của bạn mà. Bạn chưa thử gán như vậy sao?

P/S:
1. Tôi chỉ dẫn sai ở bài #16. Bạn chỉ cần làm mục 2 thôi.
2. Trả lời cho #17: Bạn chép đoạn code sau vào module ThisWorkbook
Rich (BB code):
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Sheet2.KhaiBao
End Sub
Mình đã làm được. Quá tuyệt vời. Một lần nữa, cám ơn bạn rất nhiều :1a:
 
Upvote 0
Trong trường hợp với 3 thông số cho MsBox là 2 - 1 - 1, bạn có thể giúp mình đoạn code để mỗi khi nhập liệu ở cột A thì dòng tương ứng ở cột F sẽ tự động điền vào hàm NOW(), mục đích là để lấy thời gian nhập liệu không?
 
Upvote 0
Trong trường hợp với 3 thông số cho MsBox là 2 - 1 - 1, bạn có thể giúp mình đoạn code để mỗi khi nhập liệu ở cột A thì dòng tương ứng ở cột F sẽ tự động điền vào hàm NOW(), mục đích là để lấy thời gian nhập liệu không?
Trong Private Sub ComboBox1_Change(),
thêm ActiveCell.Offset(0, 5) = Now()
ngay sau dòng:
Rich (BB code):
        If Col1 > Col2 And Cols = 1 And Col2 <> 0 Then
            ActiveCell.Value = ComboBox1.Column(1)
 
Upvote 0
Chào bạn, với 3 thông số nhập vào inputbox lần lượt là 2 - 1 - 1. Mình muốn tạm ngưng combobox để dán dữ liệu của file khác (rất nhiều) vào cột A trong file của bạn thì làm cách nào nhỉ? Cám ơn bạn.
 
Upvote 0
Chào bạn, với 3 thông số nhập vào inputbox lần lượt là 2 - 1 - 1. Mình muốn tạm ngưng combobox để dán dữ liệu của file khác (rất nhiều) vào cột A trong file của bạn thì làm cách nào nhỉ? Cám ơn bạn.
Làm kiểu thủ công trớt: ở menu Developer bấm công cụ Design Mode. Xong việc bấm lại nó lần nữa.
 
Upvote 0
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):
View attachment 274636
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)
View attachment 274637
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.
View attachment 274638
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:
View attachment 274639
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.
View attachment 274640
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)
Bạn Maika8008 thân! trong file chỉ copy mỗi combobox thôi hả bạn, vì mình thấy code có InputBox (cái InputBox này không cần vẽ hay coppy hả bạn)? Và khi copy combobox để ở dòng A2 như trong file thôi hả bạn?

 
Upvote 0
Bạn Maika8008 thân! trong file chỉ copy mỗi combobox thôi hả bạn, vì mình thấy code có InputBox (cái InputBox này không cần vẽ hay coppy hả bạn)? Và khi copy combobox để ở dòng A2 như trong file thôi hả bạn?

Inputbox là hộp nhập xuất hiện khi ta dùng lệnh InputBox() chứ không phải là công cụ vẽ sẵn. Combobox để đâu cũng được. Nó sẽ di chuyển đến ô hiện hành khi ta bấm vào.
 
Upvote 0
Inputbox là hộp nhập xuất hiện khi ta dùng lệnh InputBox() chứ không phải là công cụ vẽ sẵn. Combobox để đâu cũng được. Nó sẽ di chuyển đến ô hiện hành khi ta bấm vào.
À, vậy mà trước giờ mình cứ tưởng là combobox vẽ nhiều cái, kéo độ rộng cho vừa khít ô và để đúng ô cần mong muốn để đánh vài chữ sẽ hiện ra cái bảng lọc. Cám ơn Maika8008 nhiều.
 
Upvote 0
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):
View attachment 274636
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)
View attachment 274637
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.
View attachment 274638
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:
View attachment 274639
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.
View attachment 274640
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)
Bạn maika8008 cho mình hỏi, nếu sheet danh mục gồm: ngày tháng, mã hàng, tên hàng, đơn vị tính, số lượng, đơn giá (cột ngày tháng và cột số lượng để trống) và dữ liệu ở cột B2. Bên sheet data gồm: ngày tháng, mã hàng, tên hàng, đơn vị tính, số lượng, đơn giá, thành tiền (trong sheet data dữ liệu nhập ở cột mã hàng (cột b8) hay cột tên hàng (cột c8). Mình muốn hỏi dữ liệu như vậy thì sheet data chỉnh sửa như thế nào và sheet danh mục có nhảy dữ liệu qua không khi có cột trống cách khoảng?. Thân!.
 
Upvote 0
Bạn maika8008 cho mình hỏi, nếu sheet danh mục gồm: ngày tháng, mã hàng, tên hàng, đơn vị tính, số lượng, đơn giá (cột ngày tháng và cột số lượng để trống) và dữ liệu ở cột B2. Bên sheet data gồm: ngày tháng, mã hàng, tên hàng, đơn vị tính, số lượng, đơn giá, thành tiền (trong sheet data dữ liệu nhập ở cột mã hàng (cột b8) hay cột tên hàng (cột c8). Mình muốn hỏi dữ liệu như vậy thì sheet data chỉnh sửa như thế nào và sheet danh mục có nhảy dữ liệu qua không khi có cột trống cách khoảng?. Thân!.
Danh mục sao phải có cột ngày tháng bạn? Như bạn mô tả thì tôi thấy có trống cách quãng gì đâu, mà nếu như cột đơn giá ở Danh mục rỗng thì bên Data sẽ nhận kết quả là rỗng.
Tốt nhất muốn gì thì bạn đưa file dữ liệu của bạn rồi đặt câu hỏi.
 
Lần chỉnh sửa cuối:
Upvote 0
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):
View attachment 274636
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)
View attachment 274637
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.
View attachment 274638
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:
View attachment 274639
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.
View attachment 274640
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)
hi anh!
em hơi gà excel nên anh cho em hỏi, sao em coppy cái combobox này sang 1 sheet khác nó ko hoạt động vậy anh?
nhấp hiện design view thì thấy, nhưng em bỏ ra cái nó mất tiêu, ấn vào nó như gõ vào 1 ô bình thường trong excel ak
 
Upvote 0
hi anh!
em hơi gà excel nên anh cho em hỏi, sao em coppy cái combobox này sang 1 sheet khác nó ko hoạt động vậy anh?
nhấp hiện design view thì thấy, nhưng em bỏ ra cái nó mất tiêu, ấn vào nó như gõ vào 1 ô bình thường trong excel ak
Chép toàn bộ code của sheet chứa cái combobox sang nữa chứ.
 
Upvote 0
Chép toàn bộ code của sheet chứa cái combobox sang nữa chứ.
em đã chuyển sang hết dc,

nhưng giờ em chỉ muốn cho phép cái combobox này hoạt động khi ở Khu Cột C thui dc ko anh?
còn show thông tin thì nó củng chỉ show tên vật tư thui
em có đính kèm file anh xem qua giúp em nha

em cám ơn anh ak
 

File đính kèm

Upvote 0
Bạn xem hướng dẫn ở bài #1. Tôi nói khá rõ mà
 
Upvote 0
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 đó.
...
Tôi thấy cái ý tưởng viết cái thủ tục để khai báo Combobox có thể tái sử dụng cho các file khác của bạn khá hay. Tôi đã dùng thử và có một số ý như sau:
- Mỗi lần mở file là phải khai báo vào Input box? Không biết tôi có bỏ sót mục nào trong hướng dẫn của bạn hay không nhưng nếu vậy thì bất tiện quá.
- Nếu dùng Sheet Form nhập liệu thì dùng Combobox kiểu này gây bất tiện vì phải dùng chuột, không thể dùng phím mũi tên hay tab để di chuyển giữa các Cell --> không tiện cho nhập liệu nhanh.
- Trong một Form nhập liệu sẽ có nhiều hơn một Combobox, vậy khai báo Combobox thứ 2, 3... như thế nào?
Ví dụ: combobox chọn [Mã vật tư], combobox chọn [Loại giá bán], combobox [Chọn loại thanh toán] v.v..
Một số ý kiến khi trải nghiệm là vậy. :)
 
Upvote 0
Tôi thấy cái ý tưởng viết cái thủ tục để khai báo Combobox có thể tái sử dụng cho các file khác của bạn khá hay. Tôi đã dùng thử và có một số ý như sau:
- Mỗi lần mở file là phải khai báo vào Input box? Không biết tôi có bỏ sót mục nào trong hướng dẫn của bạn hay không nhưng nếu vậy thì bất tiện quá.
- Nếu dùng Sheet Form nhập liệu thì dùng Combobox kiểu này gây bất tiện vì phải dùng chuột, không thể dùng phím mũi tên hay tab để di chuyển giữa các Cell --> không tiện cho nhập liệu nhanh.
- Trong một Form nhập liệu sẽ có nhiều hơn một Combobox, vậy khai báo Combobox thứ 2, 3... như thế nào?
Ví dụ: combobox chọn [Mã vật tư], combobox chọn [Loại giá bán], combobox [Chọn loại thanh toán] v.v..
Một số ý kiến khi trải nghiệm là vậy. :)
- Có thể thay inputbox bằng việc khai báo cố định trong code.
- Muốn dùng phím tab để thoát khỏi combobox thì vòng vèo 1 chút. Trước đây tôi đã thử rồi nhưng thấy bất tiện sao đó quên mất rồi. Để hồi lục lại xem thử.
- Có nhiều combobox thì cứ mỗi cái phải thêm 1 bộ code ẩn/hiện, keyup, match và đặt điều kiện sử dụng trong sự kiện SelectionChange.
 
Upvote 0
- Có nhiều combobox thì cứ mỗi cái phải thêm 1 bộ code ẩn/hiện, keyup, match và đặt điều kiện sử dụng trong sự kiện SelectionChange.
Đó là lý do tôi nói nên chuyển nó thành Class để có thể khai báo sử dụng cho bao nhiêu comboBox cũng được.
 
Upvote 0
Chào bạn @Maika8008, file của bạn rất hữu ích. Bạn có thể giúp mình vấn đề này không? Mình đang nhập địa chỉ thường trú và tạm trú, nên liệu có cách nào áp dụng combobox này cho nhiều cột khác nhau (VD: cột D và cột F, và tất nhiên là combobox dùng chung dữ liệu của sheet DM). Cám ơn bạn rất nhiều.
 
Upvote 0
Chào bạn @Maika8008, file của bạn rất hữu ích. Bạn có thể giúp mình vấn đề này không? Mình đang nhập địa chỉ thường trú và tạm trú, nên liệu có cách nào áp dụng combobox này cho nhiều cột khác nhau (VD: cột D và cột F, và tất nhiên là combobox dùng chung dữ liệu của sheet DM). Cám ơn bạn rất nhiều.
Tôi chưa hiểu câu hỏi của bạn: áp dụng cho nhiều cột khác nhau là sao?
 
Upvote 0
Tôi chưa hiểu câu hỏi của bạn: áp dụng cho nhiều cột khác nhau là sao?
Chào bạn, thông số ban đầu mình nhập vào là 1-2-1. Mình có sheet DM như trong hình. Liệu có cách nào để áp dụng combobox cho cột C và cột E như trong hình (combobox sẽ lấy dữ liệu của cột B sheet DM) :) cbb.pngdm.png
 
Lần chỉnh sửa cuối:
Upvote 0
Chào bạn, thông số ban đầu mình nhập vào là 1-2-1. Mình có sheet DM như trong hình. Liệu có cách nào để áp dụng combobox cho cột C và cột E như trong hình (combobox sẽ lấy dữ liệu của cột B sheet DM) :)


Muốn đáp ứng yêu cầu của bạn thì:
Khai báo tuần tự 3 - 5 - 1, tức là cột thứ nhất là 3 (tức cột C sheet cần nhập liệu) , cột thứ hai là 5 (cột E sheet cần nhập liệu) và lấy 1 cột của DM (cột B)
 
Lần chỉnh sửa cuối:
Upvote 0
Muốn đáp ứng yêu cầu của bạn thì:
Khai báo tuần tự 3 - 5 - 1, tức là cột thứ nhất là 3 (tức cột C sheet cần nhập liệu) , cột thứ hai là 5 (cột E sheet cần nhập liệu) và lấy 1 cột của DM (cột B)
Mình làm theo sự hướng dẫn của bạn và đã thực hiện được. Cám ơn bạn, file rất tuyệt.
 
Upvote 0
--=0 Viết class cỡ này tôi viết hổng nổi.
Em nghĩ không cần Class cũng có thể viết được bằng kiểu truyền code từ addin vào file, em từng làm kiểu này rồi. Tuy nhiên Class chắc vẫn tối ưu hơn. Mà sao cái Class khoai thế, em đọc mãi vẫn mù tịt! Bác có tài liệu học về Class module không ạ?
 
Upvote 0
Em nghĩ không cần Class cũng có thể viết được bằng kiểu truyền code từ addin vào file, em từng làm kiểu này rồi. Tuy nhiên Class chắc vẫn tối ưu hơn. Mà sao cái Class khoai thế, em đọc mãi vẫn mù tịt! Bác có tài liệu học về Class module không ạ?
Tôi cũng mù nhưng chưa đến nỗi tịt. Nhưng dù gì thì tôi cũng không cố viết class nếu tình thế không bắt buộc. Tôi không có tài liệu nào về nó cả.
 
Upvote 0
Lần chỉnh sửa cuối:
Upvote 0
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 đó.
Bác cho em hỏi chút ạ:
1. Ở sheets data, khi nhỡ tay e chọn tất cả các Cell hoặc Ctrl-A thì có báo lỗi ạ, bác có thể chỉ cho em chỗ sửa mã để không bị lỗi khi chọn all các cell không ạ. Hoặc thêm lệnh chặn không cho ấn Ctrl-A cũng được ạ.
2. Trường hợp ngoài 2 ComboBox cho cột Mã hàng và cột Tên Hàng hóa, mà em muốn thêm comboBox để với tính năng tương tự cho cột "Đơn vị tính" và cột "Nhóm" thì có thể làm như nào không ạ?

Em cảm ơn ạ.
 

File đính kèm

  • CtrlA.JPG
    CtrlA.JPG
    56 KB · Đọc: 15
  • CtrlA_debug.JPG
    CtrlA_debug.JPG
    103.6 KB · Đọc: 15
Lần chỉnh sửa cuối:
Upvote 0
Bác cho em hỏi chút ạ:
1. Ở sheets data, khi nhỡ tay e chọn tất cả các Cell hoặc Ctrl-A thì có báo lỗi ạ, bác có thể chỉ cho em chỗ sửa mã để không bị lỗi khi chọn all các cell không ạ. Hoặc thêm lệnh chặn không cho ấn Ctrl-A cũng được ạ.
2. Trường hợp ngoài 2 ComboBox cho cột Mã hàng và cột Tên Hàng hóa, mà em muốn thêm comboBox để với tính năng tương tự cho cột "Đơn vị tính" và cột "Nhóm" thì có thể làm như nào không ạ?

Em cảm ơn ạ.
1. Để tôi xem lại sau, chừ không có máy tính.
2. Có thêm 1 cái combobox nữa thì chép tất cả các sub có liên quan cho nó và tỷ chỗ cần sửa nữa để chạy được.
 
Upvote 0
1. Để tôi xem lại sau, chừ không có máy tính.
2. Có thêm 1 cái combobox nữa thì chép tất cả các sub có liên quan cho nó và tỷ chỗ cần sửa nữa để chạy được.
Cái Ctrl-A báo lỗi em đặt lệnh "On Error Resume Next" trong Sub nên tạm không bị báo lỗi nữa rồi ạ.
Còn chỗ thêm combobox nữa thì em đang nghiên cứu code của bác, hơi phức tạp với em nên vẫn chưa biết cách và chỗ nào để chỉnh ạ. Bác có thể chỉ điểm thêm giúp em được không ạ?
 
Upvote 0
Em chào anh @Maika8008 và các anh chị em,

File của anh rất tuyệt vời và hữu ích, tuy nhiên do nhu cầu sử dụng khác nhau, cũng như đối với những người không rành về VBA như em. Nhờ anh viết dùm em cái code tìm kiếm để cải thiện không bị chậm như file hiện tại của em (giống combobox ở Sheet Data của anh siêu mượt). Mong anh phản hồi!


1701655308272.png
 

File đính kèm

Upvote 0
Em chào anh @Maika8008 và các anh chị em,

File của anh rất tuyệt vời và hữu ích, tuy nhiên do nhu cầu sử dụng khác nhau, cũng như đối với những người không rành về VBA như em. Nhờ anh viết dùm em cái code tìm kiếm để cải thiện không bị chậm như file hiện tại của em (giống combobox ở Sheet Data của anh siêu mượt). Mong anh phản hồi!


View attachment 297304
Có thấy code gì trong file giống bài 1 đâu mà sửa nhỉ?
Bạn thử áp dụng code của bài 1 đã
 
Upvote 0
Có thấy code gì trong file giống bài 1 đâu mà sửa nhỉ?
Bạn thử áp dụng code của bài 1 đã
Dạ đây ạ,
1701658198009.png
Ý em muốn nhờ anh chị code lại dùm em để cải thiện tốc độ tìm kiếm ạ, vì hiện tại khi tìm kiếm tên hàng thì hơi giật giật không như cái combobox của anh Maika8008 (ở sheet Data - trong file bài #1 của ảnh)
 
Upvote 0
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):
View attachment 274636
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)
View attachment 274637
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.
View attachment 274638
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:
View attachment 274639
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.
View attachment 296477
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

Anh cho em hỏi nếu muốn cho combobox cao hơn xíu (không bị che chữ tìm kiếm) thì chỉnh ở đâu ạ?

1701743422974.png
 
Upvote 0
Upvote 0
Bạn thử điều chỉnh chiều cao dòng của trang tính Excel xem. Tôi nhớ là tôi đã thiết đặt chiều cao combobox bằng với chiều cao dòng.
Dạ, em làm được rồi ạ. Cám ơn anh! Với em có 3 vấn đề muốn hỏi (Vì không phải người rành về VBA nếu có gì xin hãy bỏ qua)
1/ Combobox có dùng được cho việc Autofilter như hình ở bài #53 không?
2/ Có thể bổ sung thêm tính năng di chuyển qua lại giữa cột mã hàng và tên hàng bằng phím Tab!
3/ Thay vì nếu gõ sai thì phải bấm Backspace để xóa sẽ tuyệt với hơn nếu double-click xóa nội dung trong combobox!
 
Upvote 0
Dạ, em làm được rồi ạ. Cám ơn anh! Với em có 3 vấn đề muốn hỏi (Vì không phải người rành về VBA nếu có gì xin hãy bỏ qua)
1/ Combobox có dùng được cho việc Autofilter như hình ở bài #53 không?
2/ Có thể bổ sung thêm tính năng di chuyển qua lại giữa cột mã hàng và tên hàng bằng phím Tab!
3/ Thay vì nếu gõ sai thì phải bấm Backspace để xóa sẽ tuyệt với hơn nếu double-click xóa nội dung trong combobox!
Tôi chưa trả lời ngay được cho bạn. Từ từ tôi sẽ nghiên cứu xem thế nào.
 
Upvote 0
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.
Bạn thử điều chỉnh chiều cao dòng của trang tính Excel xem. Tôi nhớ là tôi đã thiết đặt chiều cao combobox bằng với chiều cao dòng.

Thanks so much!
 
Upvote 0
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

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

Back
Top Bottom