PDA

View Full Version : Cách lọc số liệu trong list box



Hai Lúa Miền Tây
07-11-08, 01:17 PM
Chào các anh chị trong diễn đàn, hiện nay em có một số thắc mắt như sau:

1) Làm cách nào để lọc số liệu trong list box (theo file mẫu)
2) Tạo công thức để lấy dl cuả Sheet 1 mà tênkhông bị trùng (Theo file mẫu)

+-+-+-++-+-+-++-+-+-+

Cám ơn các anh chị !!!

sealand
07-11-08, 01:36 PM
Nhanh nhất là dùng Pivot Table bạn chon Pivot Table rồi điền nguồn bằng name vào (Lưu ý Name có cả dòng tiêu đề).Trong vung chỉ có một cột chọn đưa vào List và vùng dữ liệu chọn Count. Ngoài ra còn dùng cột phụ. Bạn tìm danh sách duy nhất trên diễn đàn có rất nhiều.

Hai Lúa Miền Tây
07-11-08, 04:06 PM
1.) Ý mình là muốn lấy dữ liệu của "Item Name", "Spec", "Color", "Unit", "Munit", "Supliers" vào các Combobox để làm đk lọc list box.
2.) Dùng đoạn code nào đó để lọc loại vật tư nào đó trong list box theo đk lọc ở các combo box.

sealand
07-11-08, 04:15 PM
Bạn Pivot 1 loạt các danh sách tạo 1 bộ danh sách duy nhất làm nguồn cho Combobox
Mình ví dụ cách tạo DS bằng công thức và cột phụ nhé

Hai Lúa Miền Tây
07-11-08, 04:23 PM
Cám ơn bạn nhiều, nhưng bạn mới chỉ cho mình biết cách 1 là lấy dữ liệu vào combo box, còn cách lọc list box thì mình chưa biết, mong giúp đỡ

sealand
07-11-08, 04:48 PM
Theo mình bạn nên lọc theo 1 tiêu chí thôi thì dễ hơn và bạn nên thay đổi cách nạp nguồn cho Listbox
Bạn tham khảo bài của mình ở link dưới bài 14 (Ap dụng Listview)
Loc theo Combobox (http://www.giaiphapexcel.com/forum/showthread.php?t=14735)

ST-Lu!
07-11-08, 04:58 PM
Các Anh cao thủ ơi
Làm sao để Pivọt luôn tự động cập nhật khi thay đổi dữ liệu nguồn nhỉ?
-----------
ST

sealand
07-11-08, 05:03 PM
Để cập nhật cài code vào sự kiện mở form hoặc thay đổi danh sách (thêm, xóa...)

Sheetxxx.PivotTables("PivotTable1").PivotCache.Refresh

Hai Lúa Miền Tây
08-11-08, 04:48 PM
Xin lỗi bạn, làm phiền bạn viết dùm 1 trong các đk lọc (Combo) trong file đính kèm cũng được, mình vẫn chưa suy nghĩ ra. xin lỗi bạn nhé

Lệnh Hồ Đại Hiệp
08-11-08, 05:52 PM
Chào các anh chị trong diễn đàn, hiện nay em có một số thắc mắt như sau:

1) Làm cách nào để lọc số liệu trong list box (theo file mẫu)
2) Tạo công thức để lấy dl cuả Sheet 1 mà tênkhông bị trùng (Theo file mẫu)

+-+-+-++-+-+-++-+-+-+

Cám ơn các anh chị !!!

Việc lọc ra danh sách duy nhất cũng không khó khăn gì. Tuy nhiên mình lại nghĩ khác :
Các danh sách này thực ra là bảng Danh mục : Item, Spec, Color Name, Unit, MUnit . .
Vì vậy bạn cần xây dựng bảng danh mục này, đặt mã cho nó, và tất cả các dữ liệu phát sinh sẽ dựa vào mã, tham chiếu vào bảng DANH MỤC để xử lý. (Mọi người đều làm như thế)

Còn nếu bạn vẫn muốn lọc danh sách duy nhất thì bạn có thể tham khảo rất nhiều cách lọc duy nhất trên GPE này. Hãy sử dụng công cụ Tìm kiếm của diễn đàn.

Chúc vui

boyxin
08-11-08, 06:12 PM
Chào các anh chị trong diễn đàn, hiện nay em có một số thắc mắt như sau:

1) Làm cách nào để lọc số liệu trong list box (theo file mẫu)
2) Tạo công thức để lấy dl cuả Sheet 1 mà tênkhông bị trùng (Theo file mẫu)

+-+-+-++-+-+-++-+-+-+

Cám ơn các anh chị !!!


bạn xem yêu cầu 2 và kiểm tra lại
chạy GPE_loc để cập nhật lại khi dữ liệu nguồn thay đổi

sealand
08-11-08, 06:43 PM
Mình sẽ căn cứ vào tệp của bạn để xây dựng lại theo kiểu CSDL (NHư ý Lenh Ho DH gợi ý) để bạn tham khảo
Để lọc thì cũng phải thay đổi cách nạp Listbox, không nạp theo Name được tại vì Name là tất cả chứ không lọc.
Nên chuyển Listview thay Listbox về mỹ quan và tiện ích trong khi kỹ thuật không thay đổi nhiều.

sealand
10-11-08, 08:37 AM
Xin lỗi bạn, làm phiền bạn viết dùm 1 trong các đk lọc (Combo) trong file đính kèm cũng được, mình vẫn chưa suy nghĩ ra. xin lỗi bạn nhé
N­hư đã nói, mình sửa lại tệp của bạn theo dạng CSDL để dễ QL và gọn. Phần lọc mình viết Code bạn xem có vấn đề gì mình giải thích sau, nói thực khả năng viết của mình kém diễn tả lắm.
Hình thức Form máy mình đang trục trăc về màu nên bạn Đ/chỉnh lại nhé.
Mình thay Listbox bằng Listview cho có dòng cột, tiêu đề đẹp hơn.
Mình áp dụng ẩn Excel khi mở Form.

Hai Lúa Miền Tây
10-11-08, 01:05 PM
Theo mình nghĩ bạn rất mất thời gian để giúp đỡ mình, mình rất biết ơn, nhưng cho mình hỏi thêm là:
1.) Làm sao để đưa những Items đã chọn vào sheet2 để tính giá thành.
2.) Những mục vật tư mình up lên chỉ là một phần trong hệ thống nên không thể up lên hết được, bạn cho mỗi suplier, spec, color... là một group để lọc, mình sợ là khi kết hợp lại với danh mục của mình thì nó sẽ bị gặp trở ngại, với lại bảng này mình đã tham khảo người sử dụng họ bị gặp lúng túng về những mã mới mà bạn cho, có cách nào lọc mà không cần thêm mã mới không???, xin lỗi vì đã làm phiền bạn nhé

sealand
10-11-08, 01:39 PM
Chắc làm ngay thì chưa đwợc, bạn cứ điền mẫu 1 hoặc 2 dòng để mình theo. Buổi tối mình sẽ lập ví dụ. Nói chung cũng không khó, ta duyệt for each Item và dựa vào thuộc tính check để kiểm tra, nếu đúng thì chép toàn bộ Item và subitem vào sheet 2 là xong.
Có phải ý bạn là giữ nguyên trạng phải không, được thôi bạn ạ. (Nói chung chỉ là ví dụ thôi còn áp dụng ngay thì phải gửi file đủ còn khi ráp, dễ phát sinh trục trặc, bọn mình mới chỉ áp dụng thôi chưa chưa thể chặn hết lỗi ngay được. Muốn load file lớn tham khảo hướng dẫn của pmhoang ấy)
Không phải nói xin lỗi vì mình cũng học được mà.

Hai Lúa Miền Tây
10-11-08, 03:48 PM
DATA LA DỮ LiỆU GỐC1). DÙNG DATA LÀM NGUỒN ĐỂ LOOKUP DỮ LiỆU SANG SHEET2, KHÔNG NÊN THAY ĐỔI DỮ LiỆU GỐC ĐƯỢC --> đã dược giải quyết2). DÙNG COMBO ĐỂ LỌC LẦN LƯỢT: BUYER, ITEM NAME, SPEC, COLOR…. TRONG LIST BOX --> +-+-+-++-+-+-++-+-+-+ chưa được giải quyết3). LẤY DỮ LiỆU ĐƯỢC CHỌN TRONG LIST BOX VÀO SHEET2 --> đã được giải quyết

sealand
10-11-08, 04:28 PM
Nói thực mình nhìn thấy bạn lọc 8 tiêu chuẩn 1 lúc e rằng khó thực hiện được vì kết quả lọc ngẫu nhiên rất hiếm (Một dòng phải thỏa mãn 8 tiêu chuẩn thì thật khó tìm trong DK ngẫu nhiên) do vậy List của bạn thường xuyên trống trơn. Lọc là đưa các dòng gần đúng để tìm trong diều kiện hẹp hơn mà thôi chứ sát quá thì chỉ khi cần tìm chính xác 1 dòng nào đó.
Theo mình chỉ cần lọc 1 hoặc 2 tiêu chuẩn là đủ. Mấu chốt của việc lọc là viết 1 hàm kiểm tra linh hoạt để rà soát việc nạp dữ liệu cho Listbox. Một lần nữa mình tham gia không nạp dữ liệu cho Listbox bằng Name mà phải bằng câu lệnh VBA. Như vậy mới kiểm soát việc nạp được.

Hai Lúa Miền Tây
10-11-08, 04:31 PM
Có cách nào lọc được 3 tiêu chuẩn không: Buyer, Itemname, Spec
Cám ơn anh

sealand
10-11-08, 04:40 PM
OK, mình sẽ sử lý theo hướng của bạn.Rất có thể mình sẽ bỏ không dựa vào sheet3 vì bạn làm như vậy mà Data thêm tên mới mà quên không cập nhật danh sách thì sao.(Trừ phi bạn nhập data theo validation hoặc danh sách chọn)

sealand
12-11-08, 03:52 PM
Mình gửi bạn file thô chưa hoàn thiện code bạn xem có đúng ý bạn không nhé.
Toàn bộ việc trích lọc DL sử dụng ADODB (Do lọc bắng SQL nên có thể lọc tất cả các Combo, mình chưa đếm số Record lọc và trong kji chờ lọc chuyển chuột thành đồng hồ cát)

Hai Lúa Miền Tây
12-11-08, 05:42 PM
Gửi anh SeaLand !!!

Đây đúng là cái em cần, cám ơn anh rất nhiều, nhưng nếu được thêm 1 đk là khi mình lọc dữ liệu trên list box thì dữ liệu trên các combo đều lọc theo.

Một lần nữa cám ơn anh nhiều :)

Hai Lúa Miền Tây
12-11-08, 06:15 PM
Gửi anh SeaLand !!!

Đây đúng là cái em cần, cám ơn anh rất nhiều, nhưng nếu được thêm 2 đk sau thì nó rất hoàn chỉnh:

1). Khi mình mở form lên thì list box sẽ lọc theo cell D2 thay vì lọc buyer name là "COLEMAN EU" (Có gì anh xem file đính kèm nhé)
2). Khi mình lọc dữ liệu trên list box thì dữ liệu trên các combo đều lọc theo.

Một lần nữa cám ơn anh nhiều :)

sealand
13-11-08, 08:23 AM
Mình gửi bản đã điều chỉnh lại bạm kiểm tra giúp.

Hai Lúa Miền Tây
13-11-08, 09:26 AM
Cảm ơn anh SeaLand nhiều, khi nào anh vào Sài Gòn nhớ ĐT cho em nhe

@#$

KVP
13-11-08, 10:47 AM
Mình đọc các bài viết cua các bạn viết về ListView rất hay nhưng khi thực hành thì không tài nào Addition more control từ cửa sổ VBE được
Nếu ở cửa sổ Window Workhsheet thì có thể chèn listview được vì đăng ký MS listview 6.0
Nhưng nếu ở VBE thì nhấn addition controls thì không hiện ra bảng chọn
Có ai giúp mình với

Hai Lúa Miền Tây
13-11-08, 10:53 AM
Bạn nân cài vào máy mình bộ MS Visual Basic 6.0, như vậy trong đó nó mới hổ trợ cho các control

KVP
13-11-08, 10:55 AM
Bạn nân cài vào máy mình bộ MS Visual Basic 6.0, như vậy trong đó nó mới hổ trợ cho các control
Tại sao khi mở các file của các bạn vẫn thấy Listview nhỉ, Mình cứ nghĩ là do không đăng ký file .dll nào đó. Để mình thử xem

sealand
13-11-08, 11:15 AM
Bạn vào VBA -->Insert --> Userform

VBA mở 1 form trống và thanh công cụ (Nếu không thấy thanh công cụ vào View chọn ToolsBox)
Từ đây có 2 cách add Control:
1/Nhấn chuột phải vào thanh công cụ. Chọn Ad...
2/Tools chọn Additional...
Cũng có thể Window của bạn có vấn đề nên không bổ xung đối twợng được. Đây là vấn đề nan giải mà các cao thủ trên diễn đàn vẫn chưa giải quyết thỏa đáng được.
Listview không cài VB cũng đã có trong VBA rồi.Bạn thấy đấy bạn mở được Listview cơ mà
Chúc bạn thành công.

KVP
13-11-08, 01:52 PM
Cám ơn Sealand, mình cũng đã thử các cách như cách của bạn, của chị Handung, cũng đã cài thêm VB6,. Vấn đề là cả 02 máy tính của mình đều không thực hiện được. NHưng co một điểm chung là cả hai máy đều cài chung 02 bộ office (2007;2003) mình sẽ thử gỡ bỏ một trong 2 xem sao.

KVP
13-11-08, 03:40 PM
Vẫn không được không hiểu tại sao nhỉ. Có ai giúp mình với

tungson_mrcc
11-02-10, 10:19 PM
Gủi bạn Sealant
Sau khi mở file ListBox_Form2, Khi mình kích vào nút Show Material Form, thì màn hình báo lỗi. (Xem hình đính kèm).
Máy mình không có VB6, không biết đó có phải là lý do không?
Mong bạn chỉ giúp.
Trân trọng

sealand
11-02-10, 11:06 PM
Đúng là máy của bạn đang thiếu điều khiển ADODC dùng để kết nối dữ liệu (MSADODC.OCX). Bạn vào VBA-->Tools-->References. Bạn sẽ thấy những dòng bắt đầu bằng Missing là các điều khiển file sử dụng nhưng máy của bạn không có. Nếu muốn vọc VBA thì nên cài VB6 để hỗ trợ nhiều tính năng hơn. Bạn có thể tham khảo bổ xung ở đây (http://www.giaiphapexcel.com/forum/showthread.php?t=13241) nếu không muốn cài chương trình VB6

tungson_mrcc
01-03-10, 01:02 PM
Mình tìm ra cách lọc dữ liệu với nhiều điều kiện, sử dụng kỹ thuật Advanced Filter.
Các bác xem tại link này http://www.giaiphapexcel.com/forum/showthread.php?t=33915&p=225748#post225748
Mong nhận được ý kiến phản hồi của các bác.
Trân trọng.