Nhờ trợ giúp code tìm kiếm trong form (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

van_thanh_phong

Thành viên chính thức
Tham gia
25/6/08
Bài viết
87
Được thích
10
Nghề nghiệp
Giáo viên
Nhờ sự giúp đỡ nhiệt tình của bác Sealand mà tôi đã có một form nhập liệu hơn cả mong đợi.
Sau khi sử dụng lại nảy sinh vấn đề là
1. Tìm kiếm dữ liệu trong form thỏa mãn một số điều kiện
Có thể tìm theo tên học sinh,năm sinh,nữ,DT,MSHS(xem file đính kèm sẽ chi tiết hơn) hoặc nhiều điều kiện cùng một lúc
2. Sau khi tìm xong nếu click vào nút lệnh:"Trích xuất dữ liệu" sẽ tạo 1 sheet mới với nội dung là dữ liệu vừa tìm được
Rất mong được sự giúp đỡ của của các thành viên.
Chân thành cảm ơn !
 
Chỉnh sửa lần cuối bởi điều hành viên:
Các bác cho em hỏi là làm cách nào để có thể scroll listbox (trong userform tìm kiếm học sinh) được như trong file Quan Lý Học Sinh trên ạ?
 
Upvote 0
Đấy là 2 cái riêng biệt, dùng code để liên kết chúng lại với nhau. Chúng đều là những thứ có sẵn trên Toolbox mà.
 
Upvote 0
Ở "cột B của sheet:HS" (Dữ liệu không hạn chế số cột) có Họ và tên của học sinh
Làm thế nào để chuyển cod sau thành hàm để sử dụng vào bất kì vùng dữ liệu nào
Ví dụ:
=sortname("vùng dữ liệu được chọn")
PHP:
Sub sortname()
Dim Rg, cl As Range
Set Rg = HS.Range("B2:B" & HS.[b65536].End(xlUp).Row) 
For Each cl In Rg
cl.Offset(, 14) = Tachten(cl.Text)
Next
  Rg.Resize(, 15).Sort Key1:=Range("p5"), Order1:=xlAscending, Header:=xlNo
 Rg.Offset(, 14).ClearContents
End Sub

Function Tachten(Hoten As String)
Dim tam
Hoten = Trim(Hoten)
tam = Split(Hoten, " ")
Tachten = tam(UBound(tam))
End Function
Rất mong được sự trợ giúp của các thành viên trong diễn đàn !
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Bạn có thể viết lại hàm như sau:

Mã:
Option Explicit
Function Sortname(Rg As Range, Idx As Integer, k)
   If Rg.Cells.Count = 0 Or Idx < 1 _
      Or Idx > Rg.Cells.Count Then
        Sortname = "": Exit Function
          End If
 Dim Mg2(), Mg1(), ten, tam1, tam2, i, j
    ReDim Mg1(Rg.Cells.Count)
       For i = 0 To Rg.Cells.Count - 1
           Mg1(i) = Rg.Cells(i + 1)
            Next
ReDim Mg2(UBound(Mg1))
    For i = 0 To UBound(Mg2) - 1
       ten = Split(Trim(Mg1(i)), " ")
           Mg2(i) = ten(UBound(ten))
              Next
For i = 0 To UBound(Mg1) - 1
   For j = i To UBound(Mg1) - 1
       If IIf(k = 1, Mg2(i) > Mg2(j), Mg2(i) < Mg2(j)) Then
          tam1 = Mg1(i): tam2 = Mg2(i)
             Mg1(i) = Mg1(j): Mg2(i) = Mg2(j)
               Mg1(j) = tam1: Mg2(j) = tam2
                  End If: Next: Next
Sortname = Mg1(Idx - 1)
End Function

Hàm này mới thực hiện theo việc chuyển Code thôi phần sắp xếp tiếng Việt chưa sử lý
 

File đính kèm

Upvote 0
Rất cảm ơn Sealand đẫ tận tình chỉ giúp, song minh nghỉ hàm này chỉ để mình học tập thôi còn khi đưa vào áp dụng thì cần phải hiệu chỉnh lại nhiều lắm.
Mình nhờ Sealand thêm một việc nha!
-Mình gởi file nhờ Sealand kiểm tra dùm nha,xem có cần hiệu chỉnh hay bổ sung thêm gì không
-Kiểm tra dùm mình sheet TIM KIEM : có cách nào chuyển bỏ sheet TIM KIEM, chuyển giao diện và cod vào sử dụng trong form hay không?
 

File đính kèm

Upvote 0
Nói chung, các Form khá ổn rồi. Riêng việc tìm kiếm thì bạn có thể bổ xung Form tìm kiếm để trở thành tìm kiếm đa chức năng. Nhưng tìm kiếm điều kiện nhiều quá thành khó tìm, nên ghép đến 2 điều kiện đã là nhiều. Cái chính của việc tìm kiếm là chưa có: -Tìm để làm gì?
Đối với file này hiện còn thiếu rất nhiều đầu ra: -Report! Cần hàng loạt các báo cáo kết xuất phục vụ công tác quản lý HS nữa. Đấy mới là kết quả cuối cùng cần cho người sử dụng. Giờ bạn nên tập trung vào đó. Và cũng từ đó phất sinh yêu cầu dữ liệu, điều chỉnh dữ liệu.
 
Upvote 0
Cho mình hỏi trong excel có hàm, hay công thức(có thể là công thức mảng) nào sort Họ và tên theo tên hay không.
Vì tiện ích của thầy Long chỉ tách tên rồi sau sort cột tên vừa tách như vậy mất thời gian vì phải qua 2 công đoạn:tách tên =>sort tên.
Nếu tạo một add_in gồm (tách + sort) như vậy có thể sử dụng được dài lâu thì sẽ tốt hơn! (Mình nghỉ lả như vậy !)
Rất cảm ơn sử trợ giúp và góp ý chân thành của Sealand !
 
Lần chỉnh sửa cuối:
Upvote 0
Để cho bắt mắt, tiện quan sát ta đổi sang dùng Listview thay cho ListBox. Nhưng ta phải sử lý tiếng Việt vì Listview không hỗ trợ Unicode. Tiện thể, mình cũng sử lý chỉ cần gõ lọc không dấu chữ thường là được.
Mình chép 2 hàm sử lý của anh Phạm Duy Long.

Bác ơi. Em gửi mail và tin nhắn cho bác nhưng đều báo không gửi được. Bác có thể cho em địa chỉ mail của bác lại không ạ? Thank bác nhiều!
 
Upvote 0
Bác ơi. Em gửi mail và tin nhắn cho bác nhưng đều báo không gửi được. Bác có thể cho em địa chỉ mail của bác lại không ạ? Thank bác nhiều!

Email của mình vẫn vậy, nhưng thời gian vừa rồi mình bận chuyện gia đình nên ít check nên không biết. Rất mong thông cảm.
Nhân đây, bạn có thể nhắc lại vấn đề của bạn để anh em cùng nghiên cứu hỗ trợ nhau được không?
 
Upvote 0
Email của mình vẫn vậy, nhưng thời gian vừa rồi mình bận chuyện gia đình nên ít check nên không biết. Rất mong thông cảm.
Nhân đây, bạn có thể nhắc lại vấn đề của bạn để anh em cùng nghiên cứu hỗ trợ nhau được không?

Em gửi mail theo chữ ký mà google báo lỗi này ạ
This is an automatically generated Delivery Status Notification.

Delivery to the following recipients failed.

barristermarkallen@gmail.com




Final-Recipient: rfc822;barristermarkallen@gmail.com
Action: failed
Status: 5.5.0
Diagnostic-Code: smtp;552-5.2.2 The email account that you tried to reach is over quota. Please direct
552-5.2.2 the recipient to
552 5.2.2 https://support.google.com/mail/?p=OverQuotaPermn21si45610687pgj.254 - gsmtp




 
Upvote 0
Thực sự mình cũng không hiểu ra sao nữa, nhưng đây là địa chỉ mình thường nhận thông báo của Thuế và BHXH nữa đấy.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom