Hiện tiêu đề cột (ColumnHeads) cho Listbox

Liên hệ QC

syquyen1987

Thành viên hoạt động
Tham gia
8/7/18
Bài viết
188
Được thích
43
Chào Các Anh/Chị

Em đang trong giai đoạn học VBA. Em đang loay hoay không biết gán tiêu đề cột trong Listbox làm thế nào, do Listbox hiển thị các kết quả cho giá trị tìm kiếm (không phải RowSource). Em cũng tìm hiểu dùng Label cho tiêu đề Listbox nhưng do em gán dữ liệu nhiều cột dữ liệu vào Listbox nên Listbox sẽ có thanh cuộn ngang, vì vậy em không thể thực hiện bằng phương pháp này được. Giải pháp của em là cho tiêu đề cột thành dòng đầu tiên trong Listbox và sẽ không trực quan khi cuộn thanh dọc của Listbox xuống sẽ không nhìn thấy tiêu đề cột. Các Anh/Chị có giải pháp tối ưu nào cho trường hợp của em không ạ. Em xin cảm ơn
1600224610985.png
 

File đính kèm

  • Gõ textbox thì list hiển thị xem trước.xlsm
    2.5 MB · Đọc: 14
Import cái data gridview của dot net.
Tôi chỉ biết mang máng vậy thôi. Mấy năm rồi không đụng đến dot net nên bạn hỏi có tiếp tôi cũng phải tra tài liệu lại. Và có thể bây giờ có cách mới rồi.
 
Upvote 0
Import cái data gridview của dot net.
Tôi chỉ biết mang máng vậy thôi. Mấy năm rồi không đụng đến dot net nên bạn hỏi có tiếp tôi cũng phải tra tài liệu lại. Và có thể bây giờ có cách mới rồi.
Dot net gì đó em chưa từng tiếp xúc bao giờ. Như anh nói là em sẽ hỏi tiếp nên em hỏi tiếp ạ. Anh có thể giới thiệu cho em Dot net để xử lý bài của em không ạ. Em cảm ơn
 
Upvote 0
Import cái data gridview của dot net.
Tôi chỉ biết mang máng vậy thôi. Mấy năm rồi không đụng đến dot net nên bạn hỏi có tiếp tôi cũng phải tra tài liệu lại. Và có thể bây giờ có cách mới rồi.
Cách 1 - đơn giản:
Tìm kiếm cộng thêm control ListView - sử dụng listview <<=== tìm kiếm google là có ngay

Cách 2: cũng đơn giản
Tạo 1 list box nữa 1 dòng chỉ chứa tiêu đề, đặt sát kề trên listbox dữ liệu --->> chỉnh các column width phù hợp bằng với listbox dữ liệu

Cách 3: như bài 2 nói, hoặc dùng các control của bên thứ 3 như iGrid
 
Lần chỉnh sửa cuối:
Upvote 0
Chào Các Anh/Chị

Em đang trong giai đoạn học VBA. Em đang loay hoay không biết gán tiêu đề cột trong Listbox làm thế nào, do Listbox hiển thị các kết quả cho giá trị tìm kiếm (không phải RowSource). Em cũng tìm hiểu dùng Label cho tiêu đề Listbox nhưng do em gán dữ liệu nhiều cột dữ liệu vào Listbox nên Listbox sẽ có thanh cuộn ngang, vì vậy em không thể thực hiện bằng phương pháp này được. Giải pháp của em là cho tiêu đề cột thành dòng đầu tiên trong Listbox và sẽ không trực quan khi cuộn thanh dọc của Listbox xuống sẽ không nhìn thấy tiêu đề cột. Các Anh/Chị có giải pháp tối ưu nào cho trường hợp của em không ạ. Em xin cảm ơn
View attachment 245595
Nhớ khi xưa mình có làm thủ công cái dzụ này....
Các header này mình làm bằng label cho nó như thế nó không chạy đi đâu được...
Lúc đó bí lối tự mình làm phục vụ cho mình.... @!>><
 
Upvote 0
Cách 1 - đơn giản:
Tìm kiếm cộng thêm control ListView - sử dụng listview <<=== tìm kiếm google là có ngay

Cách 2: cũng đơn giản
Tạo 1 list box nữa 1 dòng chỉ chứa tiêu đề, đặt sát kề trên listbox dữ liệu --->> chỉnh các column width phù hợp bằng với listbox dữ liệu

Cách 3: như bài 2 nói, hoặc dụng các control bên thứ 3 như iGrid
Cảm ơn anh đã quan tâm. Cách 1 và cách 3 em chưa từng tiếp xúc. Cách 2 em cũng đã nghĩ đến, nhưng khi cuộn ngang listbox dữ liệu thì listbox thêm (tiêu đề) cũng phải cuộn ngang tương ứng. Em thấy cũng không đơn giản. Do em chưa có thời gian nên chưa thử cách 2 mặc dù đã nghĩ đến nó rồi ạ. Còn cách 1 (listview) em nghe nói chạy được "môi trường" 32 hay 64 bit gì đó. Nếu như vậy cũng sẽ không tối ưu khi máy này chạy được còn máy khác không chạy được. Lúc nào có thời gian em sẽ tìm hiểu thêm ạ. Cảm ơn anh
Bài đã được tự động gộp:

Nhớ khi xưa mình có làm thủ công cái dzụ này....
Các header này mình làm bằng label cho nó như thế nó không chạy đi đâu được...
Lúc đó bí lối tự mình làm phục vụ cho mình.... @!>><
Em không hiểu sao có thể dán label được khi listbox có cuộn thanh ngang ạ.
 
Upvote 0
Em không hiểu sao có thể dán label được khi listbox có cuộn thanh ngang ạ.
Đã nói là làm thủ công cho riêng mình thôi mà...
lúc đó không có kéo ngang ah.
Còn giờ nghĩ nếu mình làm thủ công thì tạo ra cái listbox cho header thôi, và liên kết sự dịch chuyển của cái listbox Data với cái list box header này.
Các anh GPE đừng ném đá em nha... em đã bảo là em làm thủ công dùng chữa cháy thôi khi mình chưa học được cái mình cần
 
Upvote 0
Cảm ơn anh đã quan tâm. Cách 1 và cách 3 em chưa từng tiếp xúc. Cách 2 em cũng đã nghĩ đến, nhưng khi cuộn ngang listbox dữ liệu thì listbox thêm (tiêu đề) cũng phải cuộn ngang tương ứng. Em thấy cũng không đơn giản. Do em chưa có thời gian nên chưa thử cách 2 mặc dù đã nghĩ đến nó rồi ạ. Còn cách 1 (listview) em nghe nói chạy được "môi trường" 32 hay 64 bit gì đó. Nếu như vậy cũng sẽ không tối ưu khi máy này chạy được còn máy khác không chạy được. Lúc nào có thời gian em sẽ tìm hiểu thêm ạ. Cảm ơn anh
Bài đã được tự động gộp:


Em không hiểu sao có thể dán label được khi listbox có cuộn thanh ngang ạ.
Hãy nghĩ thoáng ra, và không lười được
Nên tóm tắt thông tin hiện phần tóm tắt thôi, số cột nằm trong 1 trang form, 1 trang list box (theo phương ngang) còn cứ tham thì mệt

Còn vẫn tham thì cần phải xử lý sự kiện Scroll - có thể nhưng tự làm khó mình (không đáng, vì ở 1 thời điểm cũng xem được trong tầm mắt thôi)

Cảm ơn anh đã quan tâm. Cách 1 và cách 3 em chưa từng tiếp xúc.

Chưa tiếp xúc, thì giờ tiếp xúc giờ học vậy thôi, còn cứ nói không thì mãi có thể bạn là không và không
 
Upvote 0
Em không hiểu sao có thể dán label được khi listbox có cuộn thanh ngang ạ.
Nếu tôi hiểu ý này thì thử đọc kỹ tất cả bài trong chủ đề sau


Từ code của tôi (siwtom) ở chủ đề trên tôi soạn cho bạn tập tin ví dụ.
 

File đính kèm

  • ListBoxWithHeader.xlsm
    22.7 KB · Đọc: 85
Upvote 0
Từ code của tôi (siwtom) ở chủ đề trên tôi soạn cho bạn tập tin ví dụ.
[/QUOTE]
Anh ơi, nhưng xét về tổng thể thì listbox hiển thị kết quả của anh vẫn nằm trong khung anh thiết lập đó ạ. Có thể anh hiểu sai ý của em. Ý của em là thiết kế listbox to bằng màn hình nhưng khi hiển thị listbox hiển thị thì sẽ cho ra thanh cuộn ngang ạ. Như vậy thì label được dán vào sẽ không còn phù hợp nữa.
 
Upvote 0
Anh ơi, nhưng xét về tổng thể thì listbox hiển thị kết quả của anh vẫn nằm trong khung anh thiết lập đó ạ. Có thể anh hiểu sai ý của em. Ý của em là thiết kế listbox to bằng màn hình nhưng khi hiển thị listbox hiển thị thì sẽ cho ra thanh cuộn ngang ạ. Như vậy thì label được dán vào sẽ không còn phù hợp nữa.
Bạn nên chọn 1 lưới khác thay thế cái listbox, hoặc ghi xuống sheet rồi đưa lên lại listbox.
 
Upvote 0
Em đang trong giai đoạn học VBA. Em đang loay hoay không biết gán tiêu đề cột trong Listbox làm thế nào, do Listbox hiển thị các kết quả cho giá trị tìm kiếm (không phải RowSource). Em cũng tìm hiểu dùng Label cho tiêu đề Listbox nhưng do em gán dữ liệu nhiều cột dữ liệu vào Listbox nên Listbox sẽ có thanh cuộn ngang, vì vậy em không thể thực hiện bằng phương pháp này được. Giải pháp của em là cho tiêu đề cột thành dòng đầu tiên trong Listbox và sẽ không trực quan khi cuộn thanh dọc của Listbox xuống sẽ không nhìn thấy tiêu đề cột. Các Anh/Chị có giải pháp tối ưu nào cho trường hợp của em không ạ. . . .
Vậy thì chuyển thành 2 ListBox trên 2 Pages Trên 2 ListBox này đều có cột ID (Chỉ là ý tưởng thôi nha!)
 
Upvote 0
Bạn nên chọn 1 lưới khác thay thế cái listbox, hoặc ghi xuống sheet rồi đưa lên lại listbox.
Vâng, em hiểu ý anh rồi ạ. Như vậy cần đổ dữ liệu xuống sheet rồi lại đưa lên form. Nhưng em đang tính đến phương án thêm một listbox cho tiêu đề bên cạnh listbox kết quả, và sẽ xử lý Scroll cuộn ngang để đồng bộ cho 2 listbox này ạ
 
Upvote 0
Từ code của tôi (siwtom) ở chủ đề trên tôi soạn cho bạn tập tin ví dụ.

Anh ơi, nhưng xét về tổng thể thì listbox hiển thị kết quả của anh vẫn nằm trong khung anh thiết lập đó ạ. Có thể anh hiểu sai ý của em. Ý của em là thiết kế listbox to bằng màn hình nhưng khi hiển thị listbox hiển thị thì sẽ cho ra thanh cuộn ngang ạ. Như vậy thì label được dán vào sẽ không còn phù hợp nữa.

Thì bạn mở rộng cái khung đó ra hết màn hình, List box cũng thế, thì là đạt kết quả; Tất nhiên các labels phải đi theo phù hợp với listbox của chính vấn đề đó
 
Lần chỉnh sửa cuối:
Upvote 0
Hai Lúa biết grid nào chạy được trên office64 không?
Thời em còn dùng VB6.0 em hay dùng VSFlexGrid và MSFlexGrid mà có lần em giới thiệu với Sư Phụ đó. Giờ lâu quá em không dùng vì đã chuyển qua VB.Net để sử dụng mấy cái lưới của thằng DevExpress rồi.
 
Upvote 0
Anh ơi, nhưng xét về tổng thể thì listbox hiển thị kết quả của anh vẫn nằm trong khung anh thiết lập đó ạ. Có thể anh hiểu sai ý của em. Ý của em là thiết kế listbox to bằng màn hình nhưng khi hiển thị listbox hiển thị thì sẽ cho ra thanh cuộn ngang ạ. Như vậy thì label được dán vào sẽ không còn phù hợp nữa.
Bạn nói thế làm tôi buồn quá. Chả nhẽ chưa 70 mà đầu óc tôi đã có vấn đề sao.

Có lẽ do bạn không cho ví dụ cụ thể nên tôi không hiểu ý. Tôi đính kèm tập tin với các Label là tiêu đề của ListBox. Bạn chạy thử và cho tôi biết, cái gì không hợp ý bạn. Đừng nói chung chung vì tôi chậm hiểu mà. Cứ nói cụ thể: chỗ này khi tôi làm ... thì có cái này ..., nhưng ý tôi là phải thế này ... thế này ...
 

File đính kèm

  • Gõ textbox thì list hiển thị xem trước.xlsm
    2.5 MB · Đọc: 84
Upvote 0
Bạn nói thế làm tôi buồn quá. Chả nhẽ chưa 70 mà đầu óc tôi đã có vấn đề sao.

Có lẽ do bạn không cho ví dụ cụ thể nên tôi không hiểu ý. Tôi đính kèm tập tin với các Label là tiêu đề của ListBox. Bạn chạy thử và cho tôi biết, cái gì không hợp ý bạn. Đừng nói chung chung vì tôi chậm hiểu mà. Cứ nói cụ thể: chỗ này khi tôi làm ... thì có cái này ..., nhưng ý tôi là phải thế này ... thế này ...
Em xin lỗi anh ạ. Mong được anh bỏ qua cho em. Code của anh chạy đúng lắm ạ. Em cảm ơn vì đã được học hỏi thêm từ anh ạ.
 
Upvote 0
Web KT
Back
Top Bottom