Nhờ mọi chỉ giúp tạo sao kết quả tìm kiếm không hiển thị hết trên Listbox

Liên hệ QC
1. Bạn tìm theo số thẻ (Nhập thẻ hộ nghèo cần tìm kiếm), tôi hiểu là Mã số thẻ, vậy tại sao lại xét tất cả các cột?
2. Mỗi lần tìm kiếm phải bỏ ra uống cà phê. Không được đọc từng ô dữ liệu từ sheet khi dữ liệu nhiều. Phải đọc toàn bộ dữ liệu vào mảng rồi tìm kiếm trong mảng.
3. Nếu bạn dùng ListBox1.AddItem + ... thì chỉ có 10 cột (0-9), hãy đọc help.
Muốn dùng > 10 cột thì hãy nhét dữ liệu vào mảng rồi sau đổ vào LIstBox: ListBox1.List = mảng.
4. Bạn muốn dùng 13 cột nhưng lại có ColumnCount = 12, tức cột 13 sẽ không nhìn thấy. Dụng ý là thế?
5. ListBox hẹp quá không nhìn thấy cột M. Trừ phi dụng ý không hiện M.

Tôi sửa code thành
Mã:
Private Sub TextBox1_Change()
Dim lastRow  As Long, r As Long, c As Long, count As Long, findvalue As String, data(), result(), index() As Long
    ListBox1.Clear
    With Sheet1
        lastRow = .Cells(Rows.count, "B").End(xlUp).Row
        If lastRow < 3 Then Exit Sub
        data = .Range("A3:M" & lastRow).Value
    End With
    findvalue = TextBox1.Text & "*"
    For r = 1 To UBound(data)
        If data(r, 2) Like findvalue Then
            count = count + 1
            ReDim Preserve index(1 To count)
            index(count) = r
        End If
    Next r
    If count Then
        ReDim result(1 To count, 1 To 13)
        For r = 1 To count
            For c = 1 To 13
                result(r, c) = data(index(r), c)
            Next c
        Next r
        ListBox1.List = result
    End If
End Sub
 
Upvote 0
1. Bạn tìm theo số thẻ (Nhập thẻ hộ nghèo cần tìm kiếm), tôi hiểu là Mã số thẻ, vậy tại sao lại xét tất cả các cột?
2. Mỗi lần tìm kiếm phải bỏ ra uống cà phê. Không được đọc từng ô dữ liệu từ sheet khi dữ liệu nhiều. Phải đọc toàn bộ dữ liệu vào mảng rồi tìm kiếm trong mảng.
3. Nếu bạn dùng ListBox1.AddItem + ... thì chỉ có 10 cột (0-9), hãy đọc help.
Muốn dùng > 10 cột thì hãy nhét dữ liệu vào mảng rồi sau đổ vào LIstBox: ListBox1.List = mảng.
4. Bạn muốn dùng 13 cột nhưng lại có ColumnCount = 12, tức cột 13 sẽ không nhìn thấy. Dụng ý là thế?
5. ListBox hẹp quá không nhìn thấy cột M. Trừ phi dụng ý không hiện M.

Tôi sửa code thành
Mã:
Private Sub TextBox1_Change()
Dim lastRow  As Long, r As Long, c As Long, count As Long, findvalue As String, data(), result(), index() As Long
    ListBox1.Clear
    With Sheet1
        lastRow = .Cells(Rows.count, "B").End(xlUp).Row
        If lastRow < 3 Then Exit Sub
        data = .Range("A3:M" & lastRow).Value
    End With
    findvalue = TextBox1.Text & "*"
    For r = 1 To UBound(data)
        If data(r, 2) Like findvalue Then
            count = count + 1
            ReDim Preserve index(1 To count)
            index(count) = r
        End If
    Next r
    If count Then
        ReDim result(1 To count, 1 To 13)
        For r = 1 To count
            For c = 1 To 13
                result(r, c) = data(index(r), c)
            Next c
        Next r
        ListBox1.List = result
    End If
End Sub
Ban đầu thì mình làm 13 cột nhưng có 1 cột không cần nhập liệu nên mình bỏ đi 01 cột.
Còn tìm kiếm thì mình muốn tìm kiếm mở rộng tất cả các cột để dễ khai thác và tra cứu thông tin, nhưng chủ đích thì tìm trên cột mã số thẻ là chủ yếu.
Cám ơn bạn đã góp ý cho mình
 
Upvote 0
Ban đầu thì mình làm 13 cột nhưng có 1 cột không cần nhập liệu nên mình bỏ đi 01 cột.
Còn tìm kiếm thì mình muốn tìm kiếm mở rộng tất cả các cột để dễ khai thác và tra cứu thông tin, nhưng chủ đích thì tìm trên cột mã số thẻ là chủ yếu.
Cám ơn bạn đã góp ý cho mình
Nếu tìm bất kỳ cột thì hãy nghĩ đến Advanced Filter.
 
Upvote 0
Nếu tìm bất kỳ cột thì hãy nghĩ đến Advanced Filter.
Đọc kỹ sẽ thấy là người ta không tìm trong cột cố định nào cả.
Người ta cần vd. gõ "hichic". Bây giờ code xét từng dòng trong vùng A:L. Trong mỗi dòng trước tiên tìm "hichic" ở cột A. Nếu tìm thấy thì cho dữ liệu dòng hiện hành vào kết quả. Nếu không tìm thấy thì tìm trong cột B, C, ..., L. Trong trường hợp xấu nhất thì phải tìm đến tận cột L. Cứ thế cho từng dòng.
 
Upvote 0
Đọc kỹ sẽ thấy là người ta không tìm trong cột cố định nào cả.
Người ta cần vd. gõ "hichic". Bây giờ code xét từng dòng trong vùng A:L. Trong mỗi dòng trước tiên tìm "hichic" ở cột A. Nếu tìm thấy thì cho dữ liệu dòng hiện hành vào kết quả. Nếu không tìm thấy thì tìm trong cột B, C, ..., L. Trong trường hợp xấu nhất thì phải tìm đến tận cột L. Cứ thế cho từng dòng.
Giúp mình code sửa chữa, xóa dữ liệu sau khi tìm kiếm theo số thẻ hộ nghèo được không ?
 
Upvote 0
Giúp mình code sửa chữa, xóa dữ liệu sau khi tìm kiếm theo số thẻ hộ nghèo được không ?
Bạn hãy giải thích, mô tả, hướng dẫn từng thao tác, đừng bắt người khác phải đoán ý mình.

Đại loại như: khi Form được hiển thị thì ... được nhập vào ... Khi tôi gõ abc vào ... thì sẽ lọc ... và kết quả lọc sẽ hiển thị ở ... Sau đó tôi muốn ... thì phải làm thế nào? Khi tôi muốn xóa ... ở ...

Cứ như thế, hướng dẫn từng thao tác.

Xóa dữ liệu? Ở đâu? Trên sheet, ListBox, TextBox?
 
Upvote 0
Bạn hãy giải thích, mô tả, hướng dẫn từng thao tác, đừng bắt người khác phải đoán ý mình.

Đại loại như: khi Form được hiển thị thì ... được nhập vào ... Khi tôi gõ abc vào ... thì sẽ lọc ... và kết quả lọc sẽ hiển thị ở ... Sau đó tôi muốn ... thì phải làm thế nào? Khi tôi muốn xóa ... ở ...

Cứ như thế, hướng dẫn từng thao tác.

Xóa dữ liệu? Ở đâu? Trên sheet, ListBox, TextBox?
File dữ liệu đã có code Form nhập liệu và tìm kiếm trên TextBox theo mã hộ nghèo, hộ cận nghèo
Kết quả tìm kiếm hiện thị trên Listbox và truyền dữ liệu trên các TextBox và Combobox
Bây giờ mình muốn chỉnh sửa dữ liệu hoặc xóa dữ liệu sau khi tìm kiếm (trên các TextBox và Combobox hiện kết quả)
 

File đính kèm

Upvote 0
File dữ liệu đã có code Form nhập liệu và tìm kiếm trên TextBox theo mã hộ nghèo, hộ cận nghèo
Kết quả tìm kiếm hiện thị trên Listbox và truyền dữ liệu trên các TextBox và Combobox
Bây giờ mình muốn chỉnh sửa dữ liệu hoặc xóa dữ liệu sau khi tìm kiếm (trên các TextBox và Combobox hiện kết quả)
Việc sắp xếp dữ liệu của bạn rất bất ổn mình thì không có time giúp bạn sắp xếp lại chỉ làm theo yêu cầu của ban.
 

File đính kèm

Upvote 0
Việc sắp xếp dữ liệu của bạn rất bất ổn mình thì không có time giúp bạn sắp xếp lại chỉ làm theo yêu cầu của ban.
Mình làm File này để giúp bạn cùng cơ quan, dữ liệu lưu ở cột H, I và Năm sinh Nam nữ tách biệt thành 2 cột khác nhau chỉ phục vụ in ấn thẻ hộ nghèo, hộ cận nghèo.
Sheet 4 mình sẽ liên kết Hyperlink để đến các Sheet và chạy code VBA (nhập liệu, chỉnh sửa)
Mình đã thử File của bạn làm, Code chỉnh sửa bị sai vì sau khi cập nhật nó lưu dữ liệu bị lệch 01 cột trong khi dữ liệu ở cột cuối cùng vẫn giữ nguyên (cột đoàn thể)
 
Upvote 0
Mình làm File này để giúp bạn cùng cơ quan, dữ liệu lưu ở cột H, I và Năm sinh Nam nữ tách biệt thành 2 cột khác nhau chỉ phục vụ in ấn thẻ hộ nghèo, hộ cận nghèo.
Sheet 4 mình sẽ liên kết Hyperlink để đến các Sheet và chạy code VBA (nhập liệu, chỉnh sửa)
Mình đã thử File của bạn làm, Code chỉnh sửa bị sai vì sau khi cập nhật nó lưu dữ liệu bị lệch 01 cột trong khi dữ liệu ở cột cuối cùng vẫn giữ nguyên (cột đoàn thể)
Chào bạn đáng ra mình cũng định stop rồi vì bận quá nhưng xem kĩ lại file bạn là dành cho hộ nghèo nên mình cũng cố gắng hết sức
- bạn nên tìm hiểu thêm về primary key.
bạn check lại file xem có lỗi gì thì mình sẽ giúp tiếp
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom