Hàm tìm kiếm đối tượng - phần 2

Hôm trước nhờ sự giúp đỡ của hai bạn haokira và vothanhthu, mình đã có được file excel gần như hoàn chỉnh, nay xin nhờ 2 bạn giúp mình 1 chút nữa ah.
Hôm trước ở mục search trích xuất thông tin tìm kiếm theo QUYẾT ĐỊNH, đã đưa ra được các cột thông tin đầy đủ.
Nay mình muốn nhờ các bạn đặt công thức sao cho khi mình search QUYẾT ĐỊNH nào, nó sẽ tự list ra 1 dãy các hộ dân nào thuộc quyết định bồi thường đó xuất hiện ra ngay dưới ô số QUYẾT ĐỊNH. Mình xin cám ơn diễn đàn ah.
Ví dụ:
Quyết định Tổng số tiền Đã chi trả còn lại
3424 1.000.000.000 700.000.000 300.000.000
1 Nguyễn Văn A 50.000.000 50.000.000 0
2 Nguyễn Văn B 50.000.000 50.000.000 0
3 Nguyễn Văn C 50.000.000 50.000.000 0
.........................................................................................................................................................................
 
V

vothanhthu

Guest
Cái này sẽ nhanh hơn cái lần trước nhiều nha, Xem giúp mình các dữ liệu đã Show ra Oke không nhé, có cần thêm thắt gì đó thì cho mình hay!. Code mình làm tùm lum từ Module rồi UserForm, nên không biết Show lên như thế nào. ^^!.

Nhìn chung mình làm file bạn như thế này. Các bạn cứ theo hướng này mà xem code. Tương đối đơn giản, nếu không hiểu comment lại cho mình biết mình giải thích kỹ hơn nha.

- Mình tạo một Userform mới đặt tên FrmDMVT
- Tại sự kiện UserForm_Initialize sử dụng Hàm InsertColumnArray2D của bác Tuân để nối các Array nằm ở các vị trí không liên tục lại với nhau cho ListBox.
- Tại sự kiện TxtFind_Change mình dùng hàm Filter2DArray của bác Ndu để lọc mảng vừa nối với giá trị tìm kiếm.
- Cuối cùng là tạo sự kiện BeforeDoubleClick để Show Userform đó ra tại Sheet Thuchien.
 
Sửa lần cuối bởi điều hành viên:

tuhocvba

Administrator
Thành viên BQT
1. Cách upload ảnh: Bạn nên đọc bài viết này để biết cách upload ảnh.

Cách làm hiện nay của bạn khiến mọi người phải click vào mới xem được ảnh, gây bất tiện.

2. Hiện nay diễn đàn đã chặn chế độ nhắn tin vì có vài người lên đây thảo luận không để cho ai hiểu, cái họ cần là để cho việc của họ xong, và họ muốn liên hệ cá nhân, chỉ cần cái người có thể giúp được họ hiểu là được.
Việc này diễn đàn không khuyến khích, vì vậy có vấn đề gì thì bạn viết trên đây, để mọi người cùng hiểu.
Hiện tại, chỉ những dự án do BQT hỗ trợ thành viên nhằm thu lấy nguồn ủng hộ tài chính của thành viên cho diễn đàn, thì sẽ có liên hệ riêng.
 
1. Cách upload ảnh: Bạn nên đọc bài viết này để biết cách upload ảnh.

Cách làm hiện nay của bạn khiến mọi người phải click vào mới xem được ảnh, gây bất tiện.

2. Hiện nay diễn đàn đã chặn chế độ nhắn tin vì có vài người lên đây thảo luận không để cho ai hiểu, cái họ cần là để cho việc của họ xong, và họ muốn liên hệ cá nhân, chỉ cần cái người có thể giúp được họ hiểu là được.
Việc này diễn đàn không khuyến khích, vì vậy có vấn đề gì thì bạn viết trên đây, để mọi người cùng hiểu.
Hiện tại, chỉ những dự án do BQT hỗ trợ thành viên nhằm thu lấy nguồn ủng hộ tài chính của thành viên cho diễn đàn, thì sẽ có liên hệ riêng.
<Mình xin cám ơn diễn đàn đã gợi ý giúp mình ah.
 
V

vothanhthu

Guest
Ah ý mình là cho list dữ liệu con của từng quyết định nó sổ ra như kiểu vậy nè được không bạn, thanks bạn nhiều
Bạn cần đăng nhập để thấy hình ảnh
Nếu như hình thì công thức là được, không cần VBA, Mình lập thêm cột phụ tại Sheet tờ BĐ 35 ô BG7 công thức
Mã:
=IF(C7='SHEET THUCHIEN'!$C$22,MAX($BG$6:BG6)+1,"")
Sau đó Đặt công thức tại Sheet THUCHIEN ô C34
Mã:
=IFERROR(INDEX('Tờ BĐ 35'!B7:B548,MATCH(ROW(1:1),'Tờ BĐ 35'!BG7:BG548,0)),"")
và ô D34 tương ứng với công thức
Mã:
=IFERROR(INDEX('Tờ BĐ 35'!O7:O548,MATCH(ROW(1:1),'Tờ BĐ 35'!BG7:BG548,0)),"")
 
Nếu như hình thì công thức là được, không cần VBA, Mình lập thêm cột phụ tại Sheet tờ BĐ 35 ô BG7 công thức
Mã:
=IF(C7='SHEET THUCHIEN'!$C$22,MAX($BG$6:BG6)+1,"")
Sau đó Đặt công thức tại Sheet THUCHIEN ô C34
Mã:
=IFERROR(INDEX('Tờ BĐ 35'!B7:B548,MATCH(ROW(1:1),'Tờ BĐ 35'!BG7:BG548,0)),"")
và ô D34 tương ứng với công thức
Mã:
=IFERROR(INDEX('Tờ BĐ 35'!O7:O548,MATCH(ROW(1:1),'Tờ BĐ 35'!BG7:BG548,0)),"")
ah mình áp dụng được rồi, thanks bạn vothanhthu nhiều.
Bạn vothanhthu cho mình hỏi cái ô A1 màu vàng, chỗ mình nhấp đúp vô search tên hộ dân, ten code VBA là gì vậy bạn, để mình xem đoạn code VBA đó như thế nào đó. Thanks bạn
 
V

vothanhthu

Guest
Nó nằm trong Sheet THUCHIEN tại sự kiện Worksheet_SelectionChange, kèm theo 3 sự kiện nữa là ListBox1_KeyDown, TextBox1_Change TextBox1_KeyDown. Một số trong đó sẽ liên kết tới các Sub Trong Module1. Tất cả nằm trong đó nha !. Code này hơi chậm chưa tối ưu hoàn toàn, bạn xem tham khảo nha !
 
Nó nằm trong Sheet THUCHIEN tại sự kiện Worksheet_SelectionChange, kèm theo 3 sự kiện nữa là ListBox1_KeyDown, TextBox1_Change TextBox1_KeyDown. Một số trong đó sẽ liên kết tới các Sub Trong Module1. Tất cả nằm trong đó nha !. Code này hơi chậm chưa tối ưu hoàn toàn, bạn xem tham khảo nha !
Thanks ban vothanhthu nhiều nhé, để mình xem ah
 
Bạn vothanhthu cho mình hỏi, như cột QD chính thì chỉ có 1 cột C, xài hàm INDEX của bạn ok rồi.
Còn ví dụ mình có cột QD bổ sung sát cột QD chính, mà bên sheet Tờ BD 35 - QD bổ sung nó rất nhiều cột (từ cột D đến cột AU) thì mình dùng hàm INDEX như thể nào để nó list ra tên các Quyết định bổ sung cách nhau bởi dấu phẩy ah,
Cám ơn bạn nhiều
Bạn cần đăng nhập để thấy hình ảnh

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

vothanhthu

Guest
Bạn vothanhthu cho mình hỏi, như cột QD chính thì chỉ có 1 cột C, xài hàm INDEX của bạn ok rồi.
Còn ví dụ mình có cột QD bổ sung sát cột QD chính, mà bên sheet Tờ BD 35 - QD bổ sung nó rất nhiều cột (từ cột D đến cột AU) thì mình dùng hàm INDEX như thể nào để nó list ra tên các Quyết định bổ sung cách nhau bởi dấu phẩy ah,
Cám ơn bạn nhiều
Bạn cần đăng nhập để thấy hình ảnh

Bạn cần đăng nhập để thấy hình ảnh
Cái này liên quan đến VBA khác chủ đề trên, bạn tạo Topic mới đi mình giúp cho
 
Cái này liên quan đến VBA khác chủ đề trên, bạn tạo Topic mới đi mình giúp cho
Ah tại mình tưởng dùng hàm INDEX được cho nhẹ, mình sợ chạy VBA nó nặng load hơi lâu.
Ý mình muốn nó list ra số các QĐ bổ sung như vậy nè
Bạn cần đăng nhập để thấy hình ảnh
 
V

vothanhthu

Guest
Ah tại mình tưởng dùng hàm INDEX được cho nhẹ, mình sợ chạy VBA nó nặng load hơi lâu.
Ý mình muốn nó list ra số các QĐ bổ sung như vậy nè
Bạn cần đăng nhập để thấy hình ảnh
Bạn Index nó sẽ cho về kết quả giao thoa dòng và cột, khó lòng mà dò cho nhiều kết quả cách nhau bới dấu phẩy như vậy. Theo mình là phải dùng VBA rồi, nó là dò tìm trả về nhiều kết quả. Cái này cũng đơn giản, nhưng cái này nó lại khác chủ đề Topic phía trên nên bạn lập Topic mới không lại vi phạm nội quy. Lập đi mình cho code cho
 
Bạn Index nó sẽ cho về kết quả giao thoa dòng và cột, khó lòng mà dò cho nhiều kết quả cách nhau bới dấu phẩy như vậy. Theo mình là phải dùng VBA rồi, nó là dò tìm trả về nhiều kết quả. Cái này cũng đơn giản, nhưng cái này nó lại khác chủ đề Topic phía trên nên bạn lập Topic mới không lại vi phạm nội quy. Lập đi mình cho code cho
Ah mình thêm & vào công thức =IF(P13="";"";INDEX('Tờ BĐ 35'!$D$7:$D$601;P13;0)&INDEX('Tờ BĐ 35'!$E$7:$E$601;P13;0)&.............) nó ra được nhưng lại ko ra dấu phẩy ngăn cách giữa các số. Vậy để mình post 1 topic mới. Thanks bạn vothanhthu.
 
Top