Mà nè: Nhìn cách vận hành của UserForm và code thấy phức tạp quá ---> Hay bạn mô tả vấn đề, tôi nghĩ có thể cải tiến cho form và code của bạn gọn và nhanh hơn nữa đấy
(nhìn nó rối quá)
Gửi bạn NDU.
Bạn trả lời nhanh thật.
Vấn đề của mình là làm tìm cách nhanh nhất, có thể, để load dữ liệu (đã lọc được) cho form.
Form này mình làm giúp cậu em đang quản lý một xưởng chế biến gỗ.
Mục đích của form là giúp cậu ta có thể nắm bắt được tình hình lưu chuyển sản phẫm gỗ trong nhà máy trong một năm. Vì vậy mới có chuyện có rất nhiều dòng có "tình trạng = Đã xuất" mà vẫn phải giữ lại
Các dự liệu hiển thị trên ListBox là kết quả lọc dự liệu bằng kỹ thuật Advanced Filter, với nhiều nhất là 9 điều kiện lọc khác nhau. Việc nhập điều kiện lọc nào là do người dùng quyết định. Mỗi khi người dùng nhập xong một điều kiện, tôi dùng sự kiện AfterUpdate() để chạy thủ tục Range2ListBox()
Thủ tục Range2ListBox() có nhiệm vụ lọc dữ liệu theo điều kiện.
Các sự kiện cboHeader..._Click() để khi người dùng kích chuột trên cboHeader sẽ Sort kết quả lọc theo cột được chọn thông qua việc chạy thủ tục SortListBox(). Việc tô màu cboHeader nhằm giúp cho người dùng biết BÀng đang được sort theo cột nào (vì quá nhiều cột nên phải dùng màu để phân biệt).
Các dòng lệnh Format là để định dạng dữ liệu sẽi hiển thị trên ListBox. (Cái này tôi đã hỏi bạn ở đây:
http://www.giaiphapexcel.com/forum/showthread.php?46834-Các-câu-hỏi-về-mảng-trong-VBA-(Array)&p=357026#post357026, nhưng mới chỉ áp dụng được một kiểu định dạng cho toàn bảng. Trong khi dữ liệu ở đây gồm có Text, Date, Number; với dữ liệu kiểu số cũng có tới hai kiểu địng dạng)
Trước khi post lên, tôi đã phải dọn dẹp rất nhiều các điều khiển cũng như lược bớt các đoạn code xử lý dữ liệu theo như yêu cầu của người dùng, chỉ để lại phần code có liên quan tới các yêu cầu trên.
Vì là tự học, nên trong quá trình viết code vẫn còn nhiều thiếu sót lắm.
Chân thành cảm ơn sự giúp đỡ của các bạn.
Trân trọng.
P/S: Tôi vừ thử chạy code của Bác rồi. Nếu dùng câu lệnh
Me.LBBangKeGo.List() = .Value
thì dữ liệu không thể hiện được như đã định dạng bởi các câu lệnh trược đó ???