Tạo macro tìm kiếm theo tùy chọn

Liên hệ QC

duong_nam_dao

Thành viên chính thức
Tham gia
2/3/08
Bài viết
89
Được thích
44
Em có 1 tài liệu(có kèm theo). Em muốn tìm kiếm học sinh ở danh sách theo 1 trong các tùy chọn. Mong các bác giúp đỡ em. Em mới học nên cần học hỏi nhiều. Rất cám ơn các bác!
 

File đính kèm

  • Tim kiem.xls
    26 KB · Đọc: 190
Bạn xem thử file tớ làm xem có đúng yêu cầu của bạn không?
 

File đính kèm

  • Tim kiem.xls
    36.5 KB · Đọc: 379
Upvote 0
Bạn mới đáp ứng được 1/2 yêu cầu là chỉ tìm chỉ tiêu "Mã học sinh" - chỉ tiêu này không có sự trùng lặp trong một danh sách lớp. Nếu tìm theo các chỉ tiêu khác (có sự trùng lặp) thì cách thức xử lý kết quả tìm kiếm chắc sẽ khó hơn.
Mong bạn cải tiến chương trình để mình được học hỏi nhé!
 
Upvote 0
Bài toán này dùng Advanced Filter là gọn nhẹ nhất... Có thể thu macro thành 1 code rồi gán vào sự kiện WorkSheet_Change
Nhẹ nhàng, ai nhìn cũng hiểu (vì code chẳng qua là thu lại những gì ta đã làm bằng tay trước đó)
 
Upvote 0
Nhưng yêu cầu là phải dùng user form mà anh! Còn nếu đơn giản nhất thì Ctrl+F hoặc AutoFilter là xong!
Theo em, nếu đã có nhu cầu dùng User form nghĩa là phải cho hiển thị kết quả trên Form, mục đích là không cho người dùng can thiệp vào dữ liệu nguồn. (Và lý do nữa là để cho nó pro một chút!). Ở đây, đối với kết quả đơn (chỉ 1 dòng) thì làm như tamhoncuada10313 là được rồi. Nhưng nếu tìm thấy nhiều kết quả thì phải hiển thị các kết quả đó (kiểu như ấn nút Alt+A của công cụ Ctrl + F đó)!
 
Upvote 0
Nhưng yêu cầu là phải dùng user form mà anh!
Yêu cầu đây:
Em có 1 tài liệu(có kèm theo). Em muốn tìm kiếm học sinh ở danh sách theo 1 trong các tùy chọn. Mong các bác giúp đỡ em. Em mới học nên cần học hỏi nhiều. Rất cám ơn các bác!
Yêu cầu phải dùng User Forms chổ nào đâu!
Còn nếu đơn giản nhất thì Ctrl+F hoặc AutoFilter là xong! )
Đó là cách đơn giản nhất
Và lý do nữa là để cho nó pro một chút!)
Hiểu dc thuật toán mới là Pro, chứ ko phải hình thức!
 
Lần chỉnh sửa cuối:
Upvote 0
Thực ra em có nhu cầu học hỏi từ bài tập này để vận dụng tìm các hóa đơn của một nhà cung cấp. Tất nhiên, nếu cho phép người dùng Ctrl+F hay Auto filter thì cho phép vào trực tiếp sheet nguồn và họ sẽ thích làm gì thì làm, đâu cần phải hiện thêm hộp thoại tìm theo các chỉ tiêu.
Cái nữa là mình làm cho người khác sài nên em nghĩ, để nó giống giống với phần mềm một chút nghĩa là cho hiển thị kết quả ngay trên User form. Chuyên nghiệp hơn thì khi chọn kết quả nào thì kết quả đó được hiển thị trên bảng nguồn - y trang chức năng tìm kiếm của Excel. Đó là suy nghĩ của em thôi!
anhtuan1066 đã viết:
Hiểu dc thuật toán mới là Pro, chứ ko phải hình thức!
Chính vì phải hiểu được thuật toán nên em mới đưa ra các tình huống (ở đây không chỉ cho yêu cầu của duong_nam_dao). Em thấy chương trình của bạn tamhoncuada10313 viết rất tốt nhưng còn thiếu phần quan trọng nhất!
Em cũng đã nghĩ tới việc thu lại macro tìm kiếm, nếu có nhiều kết quả thì kết quả đó là kết quả của AutoFilter nhưng vẫn không cho người dùng đụng vào bằng cách hiện UserForm (khi đóng UserForm thì lại ẩn bảng nguồn đi để không cho người dùng nhìn thấy nữa). Nghĩ là như vậy, như viết chương trình thì em không biết gì, thế nên em mới mong các anh chị chỉ giúp!
 
Upvote 0
Thực ra em có nhu cầu học hỏi từ bài tập này để vận dụng tìm các hóa đơn của một nhà cung cấp. Tất nhiên, nếu cho phép người dùng Ctrl+F hay Auto filter thì cho phép vào trực tiếp sheet nguồn và họ sẽ thích làm gì thì làm, đâu cần phải hiện thêm hộp thoại tìm theo các chỉ tiêu.
Cái nữa là mình làm cho người khác sài nên em nghĩ, để nó giống giống với phần mềm một chút nghĩa là cho hiển thị kết quả ngay trên User form. Chuyên nghiệp hơn thì khi chọn kết quả nào thì kết quả đó được hiển thị trên bảng nguồn - y trang chức năng tìm kiếm của Excel. Đó là suy nghĩ của em thôi!

Chính vì phải hiểu được thuật toán nên em mới đưa ra các tình huống (ở đây không chỉ cho yêu cầu của duong_nam_dao). Em thấy chương trình của bạn tamhoncuada10313 viết rất tốt nhưng còn thiếu phần quan trọng nhất!
Em cũng đã nghĩ tới việc thu lại macro tìm kiếm, nếu có nhiều kết quả thì kết quả đó là kết quả của AutoFilter nhưng vẫn không cho người dùng đụng vào bằng cách hiện UserForm (khi đóng UserForm thì lại ẩn bảng nguồn đi để không cho người dùng nhìn thấy nữa). Nghĩ là như vậy, như viết chương trình thì em không biết gì, thế nên em mới mong các anh chị chỉ giúp!

Dùng vòng lặp, chạy cho đủ 1 vòng,chú nào thỏa mãn thì lấy.
Có 2 cách để người khác xem báo cáo mà không sửa được:
  1. Cho hiển thị lên Form (Listbox, Listview hay 1 gird nào đó)
  2. Cho hiển thị lên 1 Sheet, sau đó cho ở chế độ PrintPreview(Modify = False)
Thân!
 
Upvote 0
Cai này bạn muốn tìm dùng advanced thì bạn tìm file quản lý nhân viên của mình ấy có thể lọc rất linh hoạt và gắn vào form.
 
Upvote 0
file của bác yeudoi chỉ là tìm kiếm bằng form chứ đâu cho ra kết quả trên form đâu Bác. Và cũng cho hỏi thêm, bác có thể hướng dẫn cách làm được kô ạh, thú thật khi nhìn vào em chẳng biết mò từ đâu nữa, hix, dốt quá.
 
Upvote 0
Web KT
Back
Top Bottom