Tạo ComboBox trongUSerFom tìm kiếm

Trạng thái
Không mở trả lời sau này.

phamthach

Yêu THVBA nhất
Bạn cần đăng nhập để thấy đa phương tiện
Em có đoạn video hướng dẫn tạo combobox tìm kiếm như link trên. Em muốn combobox này có thể tìm kiếm theo 1 hoặc nhiều ký tự. Mong các anh/chị giúp đỡ.
 

vbano1

SMod
Thành viên BQT
dạ, đúng rồi ạ. không quan tâm viết hoa hay viết thường
Bạn không nói bạn định làm cái gì, cho mục đích gì, cho nên, tôi sẽ không hỗ trợ gì thêm, ngoài việc làm cho giống video.
Tôi không thay đổi gì thêm ngoài việc tự tạo userform vì họ chỉ chia sẻ code.
Ngoài ra, tôi gõ các ký tự không phải là bắt đầu, thì combobox vẫn tìm kiếm được. Tuy nhiên do load trực tiếp data từ excel vào cho nên hiển thị rất giật khục, có lúc trễ không hiển thị. Tôi nghĩ giải pháp là đưa vào mảng.
Tuy nhiên, bạn không nói rõ bạn định làm gì với mục đích ra sao, muốn thao tác như thế nào, cho nên tôi không đi sâu.
Topic sẽ dừng ở đây, tôi sẽ không thảo luận gì thêm.
Bạn cần đăng nhập để thấy hình ảnh

Link download:
Code tác giả để ở đây, tôi đã bê về file:
 

vbano1

SMod
Thành viên BQT
Mình gửi hình ảnh minh họa và ý đồ mục đích
File mình chia sẻ đáp ứng được yêu cầu của bạn rồi còn gì.
Bạn cần đăng nhập để thấy hình ảnh

Bắt đầu làm rõ ý đồ mục đích của bạn rồi đấy:
Danh sách quản lý của bạn là tên người, danh sách này hình như quản lý theo lớp, hoặc thậm chí theo trường, thì số lượng tên có trong danh sách cùng lắm lên tới 2000 người trong một sheet. Như vậy có thể bao quát tầm dữ liệu để tính toán thiết kế các bước tiếp theo.
Ngoài ra, bạn không muốn ai khác động chạm vào file excel của bạn.
Như vậy có hai hướng suy nghĩ:
1. Người dùng mở file excel nhưng tra cứu và nhập liệu trên Userform.
Tôi không biết trong trường hợp này thì bạn có thể nhập liệu bằng tiếng việt có dấu được hay không? Hay là bạn chỉ cho người ta tra cứu thôi.
Ngay cả trong trường hợp này, người ta cố tình sửa chữa trên file mà không thông qua Userform thì cũng chả làm gì được.
2. Quản lý gián tiếp:
Các file excel data cất vào một nơi.
Một file excel Tool sử dụng UserForm để truy vấn các file này. Sửa hay truy vấn dữ liệu thì thông qua file Tool.
Cách này hạn chế người dùng sờ mó vào file data nguồn.
Mở rộng: Thay vì lưu trữ dữ liệu trên excel, có thể lưu trữ dữ liệu trên access.
Dùng excel để truy vấn, đọc, sửa, hoặc xuất dữ liệu từ access ra excel như một bản báo cáo.

Đọc đến đây, bạn đã hiểu tại sao mọi người muốn biết nhiều thông tin chưa? Nếu chỉ với video, thì mọi người không biết bạn làm gì, ý tưởng thiết kế đã tốt chưa để góp ý.
 

phamthach

Yêu THVBA nhất
File mình chia sẻ đáp ứng được yêu cầu của bạn rồi còn gì.
Bạn cần đăng nhập để thấy hình ảnh

Bắt đầu làm rõ ý đồ mục đích của bạn rồi đấy:
Danh sách quản lý của bạn là tên người, danh sách này hình như quản lý theo lớp, hoặc thậm chí theo trường, thì số lượng tên có trong danh sách cùng lắm lên tới 2000 người trong một sheet. Như vậy có thể bao quát tầm dữ liệu để tính toán thiết kế các bước tiếp theo.
Ngoài ra, bạn không muốn ai khác động chạm vào file excel của bạn.
Như vậy có hai hướng suy nghĩ:
1. Người dùng mở file excel nhưng tra cứu và nhập liệu trên Userform.
Tôi không biết trong trường hợp này thì bạn có thể nhập liệu bằng tiếng việt có dấu được hay không? Hay là bạn chỉ cho người ta tra cứu thôi.
Ngay cả trong trường hợp này, người ta cố tình sửa chữa trên file mà không thông qua Userform thì cũng chả làm gì được.
2. Quản lý gián tiếp:
Các file excel data cất vào một nơi.
Một file excel Tool sử dụng UserForm để truy vấn các file này. Sửa hay truy vấn dữ liệu thì thông qua file Tool.
Cách này hạn chế người dùng sờ mó vào file data nguồn.
Mở rộng: Thay vì lưu trữ dữ liệu trên excel, có thể lưu trữ dữ liệu trên access.
Dùng excel để truy vấn, đọc, sửa, hoặc xuất dữ liệu từ access ra excel như một bản báo cáo.

Đọc đến đây, bạn đã hiểu tại sao mọi người muốn biết nhiều thông tin chưa? Nếu chỉ với video, thì mọi người không biết bạn làm gì, ý tưởng thiết kế đã tốt chưa để góp ý.
Mình dùng form kết hợp với các tính năng của bảng động để hỗ trợ nhập liệu cho ng khác nhập liệu. Do họ không có hiểu định dạng thế nào là đúng là sai lên mình mới dùng form để hỗ trợ. Để mình kiểm soát dc việc nhập liệu mình sẽ khóa vùng đó sửa đều thông qua mình để kiểm soát. Đồng thời từ bảng động nhâp liệu mình lên các báo cáo liên quan
 

phamthach

Yêu THVBA nhất
File mình chia sẻ đáp ứng được yêu cầu của bạn rồi còn gì.
Bạn cần đăng nhập để thấy hình ảnh

Bắt đầu làm rõ ý đồ mục đích của bạn rồi đấy:
Danh sách quản lý của bạn là tên người, danh sách này hình như quản lý theo lớp, hoặc thậm chí theo trường, thì số lượng tên có trong danh sách cùng lắm lên tới 2000 người trong một sheet. Như vậy có thể bao quát tầm dữ liệu để tính toán thiết kế các bước tiếp theo.
Ngoài ra, bạn không muốn ai khác động chạm vào file excel của bạn.
Như vậy có hai hướng suy nghĩ:
1. Người dùng mở file excel nhưng tra cứu và nhập liệu trên Userform.
Tôi không biết trong trường hợp này thì bạn có thể nhập liệu bằng tiếng việt có dấu được hay không? Hay là bạn chỉ cho người ta tra cứu thôi.
Ngay cả trong trường hợp này, người ta cố tình sửa chữa trên file mà không thông qua Userform thì cũng chả làm gì được.
2. Quản lý gián tiếp:
Các file excel data cất vào một nơi.
Một file excel Tool sử dụng UserForm để truy vấn các file này. Sửa hay truy vấn dữ liệu thì thông qua file Tool.
Cách này hạn chế người dùng sờ mó vào file data nguồn.
Mở rộng: Thay vì lưu trữ dữ liệu trên excel, có thể lưu trữ dữ liệu trên access.
Dùng excel để truy vấn, đọc, sửa, hoặc xuất dữ liệu từ access ra excel như một bản báo cáo.

Đọc đến đây, bạn đã hiểu tại sao mọi người muốn biết nhiều thông tin chưa? Nếu chỉ với video, thì mọi người không biết bạn làm gì, ý tưởng thiết kế đã tốt chưa để góp ý.
Bạn có thể giúp mình trên file mình mới gửi dc k? Vì mình cũng mới tập tẹo vba thôi.
 

vbano1

SMod
Thành viên BQT
Bạn có thể giúp mình trên file mình mới gửi dc k? Vì mình cũng mới tập tẹo vba thôi.
Vậy bạn cho mình làm rõ các điều dưới đây, và phản hồi lại là mình nhận thức như dưới đây là đúng hay sai:
Điều kiện dữ liệu:
1. Dòng dữ liệu bắt đầu là dòng 7 trên cột B sheet DATA. Luôn luôn là như vậy.
2. Danh sách tên tối đa khoảng 2000 người (nếu nhiều hơn thì sẽ dẫn tới khả năng chương trình đơ, cần tính giải pháp khác)
3. Dữ liệu được lấy từ sheet DATA. Tên sheet là không thay đổi. (Giống mục 1)
Giao diện:
Giao diện mong muốn xây dựng trên sheet VCSL.
Bạn cần đăng nhập để thấy hình ảnh
 

phamthach

Yêu THVBA nhất
Vậy bạn cho mình làm rõ các điều dưới đây, và phản hồi lại là mình nhận thức như dưới đây là đúng hay sai:
Điều kiện dữ liệu:
1. Dòng dữ liệu bắt đầu là dòng 7 trên cột B sheet DATA. Luôn luôn là như vậy.
2. Danh sách tên tối đa khoảng 2000 người (nếu nhiều hơn thì sẽ dẫn tới khả năng chương trình đơ, cần tính giải pháp khác)
3. Dữ liệu được lấy từ sheet DATA. Tên sheet là không thay đổi. (Giống mục 1)
Giao diện:
Giao diện mong muốn xây dựng trên sheet VCSL.
Bạn cần đăng nhập để thấy hình ảnh
1. Dữ liệu bắt đầu là dòng 7 cố định
2. Danh sách <2000
3. Tên sheets k thay đổi bạn
Giao diện đúng như bạn rồi. (bạn làm đẹp quá) :D
 

Euler

Administrator
Thành viên BQT
Lỗi do mình không ghi rõ làm mọi người phiền. Sau sẽ rút kinh ngiệm.
Giỏi nhỉ, mình không biết sao bạn gõ được nữa :D
Bạn cần đăng nhập để thấy hình ảnh
 

vbano1

SMod
Thành viên BQT
Lỗi do mình không ghi rõ làm mọi người phiền. Sau sẽ rút kinh ngiệm.
Trước hết cho mình xin phép sửa lại thiết kế một chút. Việc sử dụng Combobox độc lập gặp nhiều vấn đề, giật, lag. Dù ngay chính file nguyên bản của tác giả cũng vậy. Vì vậy, mình kết hợp giữa combobox với listbox mà rất nhiều chương trình từ điển vẫn thường dùng, chạy rất mượt.
Kịch bản như sau: Người dùng nhập vào combobox, listbox sẽ hiện ra các từ liên quan với combobox. Bạn tích chọn vào listbox là được.
Cụ thể:
Bạn cần đăng nhập để thấy hình ảnh

Bạn cần đăng nhập để thấy hình ảnh

File bạn download ở đây:

Các kiến thức liên quan mà mình sử dụng trong code, bạn tham khảo ở đây:
Mã:
Goto:
https://tuhocvba.net/threads/cac-lenh-logic-dieu-khien-trong-vba.66/

Go tieng viet tham khao o day:
https://tuhocvba.net/threads/go-tieng-viet-trong-vba.16/

Lich:
https://tuhocvba.net/threads/chia-se-calendar.92/#post-260
Chương trình hoạt động:
Bạn cần đăng nhập để thấy hình ảnh
 

Euler

Administrator
Thành viên BQT
File của @vbano1 kết hợp combobox với listbox.
File bạn download ở đây:
Mình thấy khi data giống nhau tương tự nhiều, thì combobox nhiều khi cầm đèn chạy trước oto.
Tôi ví dụ:
K.Anh ở đầu danh sách.
Khánh ở cuối danh sách.
Người dùng nếu chỉ nhập K thì combobox lập tức điền từ gợi ý là K.Anh vào luôn. Người dùng muốn gõ Kh sẽ cảm thấy khá khó chịu vì phải dùng phím Delete để xóa từ mà combobox tự ý chèn.
Mặc dù chưa nhận đánh giá của tác giả là dùng tốt rồi hay chưa, nhưng với ý kiến cá nhân của mình, tôi xin phép được sửa code trên, trong đó tôi kết hợp textbox và listbox, cho tác dụng tương tự, mà tránh được phiền nhiễu như đã nêu ở trên.
File của tôi: Kết hợp giữa textbox và Listbox được thể hiện ở đây.
Link download:
Bạn cần đăng nhập để thấy hình ảnh

Tôi tuyệt đối không có ý tranh công, mà trên góc độ học thuật nêu ra vấn đề và đưa ra giải pháp kèm file đính kèm như trên. Chúng ta chờ phản hồi của @phamthach .
 

vbano1

SMod
Thành viên BQT
Mình inbox cho bạn @phamthach , đồng thời cũng nhờ BQT gửi mail cho bạn. Cho tới thời điểm này, không nhận được phản hồi của bạn về việc support như trên đã thỏa mãn yêu cầu của bạn hay chưa? Bạn có thể bớt chút thời gian để phản hồi cho chúng mình biết được không ạ? Trong vòng 7 ngày kể từ khi topic này được mở ra, nếu như không nhận được phản hồi, cho phép chúng mình hiểu rằng topic này không còn cần hỗ trợ gì nữa. Chúng mình sẽ giành thời gian hỗ trợ các yêu cầu khác. Như vậy có được không ạ?
 

phamthach

Yêu THVBA nhất
Trước hết cho mình xin phép sửa lại thiết kế một chút. Việc sử dụng Combobox độc lập gặp nhiều vấn đề, giật, lag. Dù ngay chính file nguyên bản của tác giả cũng vậy. Vì vậy, mình kết hợp giữa combobox với listbox mà rất nhiều chương trình từ điển vẫn thường dùng, chạy rất mượt.
Kịch bản như sau: Người dùng nhập vào combobox, listbox sẽ hiện ra các từ liên quan với combobox. Bạn tích chọn vào listbox là được.
Cụ thể:
Bạn cần đăng nhập để thấy hình ảnh

Bạn cần đăng nhập để thấy hình ảnh

File bạn download ở đây:

Các kiến thức liên quan mà mình sử dụng trong code, bạn tham khảo ở đây:
Mã:
Goto:
https://tuhocvba.net/threads/cac-lenh-logic-dieu-khien-trong-vba.66/

Go tieng viet tham khao o day:
https://tuhocvba.net/threads/go-tieng-viet-trong-vba.16/

Lich:
https://tuhocvba.net/threads/chia-se-calendar.92/#post-260
Chương trình hoạt động:
Bạn cần đăng nhập để thấy hình ảnh
Trước tiên, thật sự rất cảm ơn bạn vì sự nhiệt tình giúp đỡ của bạn.
Ngày CN mình bận lên k online dc mong bạn và mọi người thông cảm. File bạn làm giúp mình rất hay nhưng vẫn chưa đúng mục đích mình cần là combobox tìm kiếm. Và bạn cũng đã ghi rõ là dùng combobox 1 mình nó giật lag lên mình sẽ thử tìm học và làm theo cách của bạn. Vì mình chưa biết mấy vba lên chắc sẽ nhờ bạn tư vấn dài dài :D
 

phamthach

Yêu THVBA nhất
File của @vbano1 kết hợp combobox với listbox.

Mình thấy khi data giống nhau tương tự nhiều, thì combobox nhiều khi cầm đèn chạy trước oto.
Tôi ví dụ:
K.Anh ở đầu danh sách.
Khánh ở cuối danh sách.
Người dùng nếu chỉ nhập K thì combobox lập tức điền từ gợi ý là K.Anh vào luôn. Người dùng muốn gõ Kh sẽ cảm thấy khá khó chịu vì phải dùng phím Delete để xóa từ mà combobox tự ý chèn.
Mặc dù chưa nhận đánh giá của tác giả là dùng tốt rồi hay chưa, nhưng với ý kiến cá nhân của mình, tôi xin phép được sửa code trên, trong đó tôi kết hợp textbox và listbox, cho tác dụng tương tự, mà tránh được phiền nhiễu như đã nêu ở trên.
File của tôi: Kết hợp giữa textbox và Listbox được thể hiện ở đây.
Link download:
Bạn cần đăng nhập để thấy hình ảnh

Tôi tuyệt đối không có ý tranh công, mà trên góc độ học thuật nêu ra vấn đề và đưa ra giải pháp kèm file đính kèm như trên. Chúng ta chờ phản hồi của @phamthach .
Tôi rất cảm ơn ý kiến của bạn. Quả thật những từ gợi ý đó rất phiền. Dẫn đến việc nhập nhiều khi phải dùng theo tác delete những chữ gợi ý. Rất cảm ơn ban
 

phamthach

Yêu THVBA nhất

Mình có làm 1 file demo. Khi mình đánh vào combobox rồi ấn sổ xuống thì đã lọc. Nhưng khi chọn lại không chọn dc. Mong mọi ng giúp đỡ @vbano1 @Euler
 

vbano1

SMod
Thành viên BQT
Vâng. Như vậy cả hai đề xuất của chúng tôi đều không được bạn @phamthach chấp nhận đúng không ạ.
Và với năng lực hiện tại, chúng tôi không thể đưa ra được đề xuất nào hay hơn. Vậy bạn topic này close ở đây có được không ạ?
 

phamthach

Yêu THVBA nhất
Vâng. Như vậy cả hai đề xuất của chúng tôi đều không được bạn @phamthach chấp nhận đúng không ạ.
Và với năng lực hiện tại, chúng tôi không thể đưa ra được đề xuất nào hay hơn. Vậy bạn topic này close ở đây có được không ạ?
Mình đâu nói là không chấp nhận à. Mình nói là bạn đã ghi rõ lên mình sẽ thử học và tìm hiểu theo cách của bạn.
 

vbano1

SMod
Thành viên BQT
Mình đâu nói là không chấp nhận à. Mình nói là bạn đã ghi rõ lên mình sẽ thử học và tìm hiểu theo cách của bạn.
Vâng. Vậy bạn sử dụng cái của anh @Euler , mình thấy nó khá là trơn tru. Nếu cần hỗ trợ gì thêm, bạn post vô topic này là được.
Khi support, mọi người đều muốn nhận được phản hồi. Thành quả được ghi nhận hay không phụ thuộc vào phản hồi của người yêu cầu. Vì vậy nếu mình có nóng lòng muốn nhận được phản hồi mà gây phiền hà thư từ inbox cho bạn, thì mong bạn bỏ qua cho ạ.
Cảm ơn bạn.
 

phamthach

Yêu THVBA nhất
Vâng. Vậy bạn sử dụng cái của anh @Euler , mình thấy nó khá là trơn tru. Nếu cần hỗ trợ gì thêm, bạn post vô topic này là được.
Khi support, mọi người đều muốn nhận được phản hồi. Thành quả được ghi nhận hay không phụ thuộc vào phản hồi của người yêu cầu. Vì vậy nếu mình có nóng lòng muốn nhận được phản hồi mà gây phiền hà thư từ inbox cho bạn, thì mong bạn bỏ qua cho ạ.
Cảm ơn bạn.
Mình hiểu được điều đó. Và thật sự cảm kích trc sự giúp đỡ nhiệt tình của bạn. Cảm ơn bạn rất nhiều.
Và mình có đưa 1 file demo vừa lên đó. Bạn xem qua giúp mình dc k?Ở đây mình dùng hàm trong excel và rowsource nhưng khi chọn lại không được
 

phamthach

Yêu THVBA nhất
Vâng. Vậy bạn sử dụng cái của anh @Euler , mình thấy nó khá là trơn tru. Nếu cần hỗ trợ gì thêm, bạn post vô topic này là được.
Khi support, mọi người đều muốn nhận được phản hồi. Thành quả được ghi nhận hay không phụ thuộc vào phản hồi của người yêu cầu. Vì vậy nếu mình có nóng lòng muốn nhận được phản hồi mà gây phiền hà thư từ inbox cho bạn, thì mong bạn bỏ qua cho ạ.
Cảm ơn bạn.
Và cách của bạn cũng như bạn Euler mình cũng đang xem để học từ những code 2 bạn viết :D
 

vbano1

SMod
Thành viên BQT
Mình hiểu được điều đó. Và thật sự cảm kích trc sự giúp đỡ nhiệt tình của bạn. Cảm ơn bạn rất nhiều.
Và mình có đưa 1 file demo vừa lên đó. Bạn xem qua giúp mình dc k?Ở đây mình dùng hàm trong excel và rowsource nhưng khi chọn lại không được
Vâng. Mình sẽ phản hồi lại bạn ngay khi có kết quả.
 
Trạng thái
Không mở trả lời sau này.
Top