Sửa dữ liệu trong listbox trong excel

Khi làm việc trong Excel, bạn thường hay phải lọc, tìm kiếm dữ liệu. Việc này đôi khi khiến bạn mất nhiều thời gian khi phải thao tác thủ công bằng tay. Hôm nay, Tinvanphong.com xin chia sẽ cho bạn cách tạo, tìm kiếm dữ liệu trong listbox từ textbox.

Trong bài viết này, Tinvanphong.com sẽ giới thiệu đến các bạn cách tìm kiếm và lọc dữ liệu tự động, khi bạn nhập vào một ô trong Excel bằng VBA. Bạn cũng có thể tải file mẫu ở cuối bài viết. Hãy cùng tìm hiểu ngay nào.

Nội dung chính

  • Tìm kiếm dữ liệu trong listbox từ textbox
    • 1. CÔNG DỤNG
    • 2. HƯỚNG DẪN
    • 3 LINK DOWN
      • DOWN BẢN DEMO

Tìm kiếm dữ liệu trong listbox từ textbox

Trong quá trình làm việc với Excel, mình có gặp một số trường dò tìm giá trị của 1 mảng dữ liệu này đó hoặc muốn nhập liệu nhanh ví dụ các mã hàng, hoặc các nội dung liên quan đến tìm kiếm. Hôm nay mình share các bạn cách tạo 1 hộp tìm kiếm dựa trên USERFORM.

Sửa dữ liệu trong listbox trong excel
Tìm kiếm dữ liệu trong listbox từ textbox
  • Hiện tại, Tinvanphong.com đang sử dụng cách tìm kiếm này cho Phần mềm xuất nhập tồn bằng Excel miễn phí 2021 bạn có xài miễn phí.

Bạn có thể sử dụng tìm kiếm này, chuyển dữ liệu muốn tìm kiếm vào Sheet bạn muốn nhập liệu, giúp chúng ta nhập liệu nhanh và chính xác cũng như hiệu quả hơn.

1. CÔNG DỤNG

  • Tìm kiếm nhanh dữ liệu như hình trên, ví dụ như Mã SP , Tên SP , đơn giá v.v
  • Tốc độ tìm kiếm nhanh, trên 2000 dòng đến 5000 dòng dữ liệu.
  • Tìm kiếm bất kỳ đoạn text nào, trong 1 vùng dữ liệu đây.

2. HƯỚNG DẪN

  1. Để làm điều đó, đầu tiên bạn vào chương trình soạn thảo VBA, có 2 cách. Nhấn tổ hợp phím ALT + F11 hoặc vào DEVOLOPER -> Chọn Visual Basic
  2. Trong trường hợp bạn không có tab DEVOLOPER, bạn vào File chọn OPTIONS chọn CUSTOMIZE RIBBON -> chọn thẻ DEVOLOPER

Bước 1: Tạo 1 Model ( Insert -> Module ) -> copy toàn bộ code dưới vào VBA.

Sửa dữ liệu trong listbox trong excel
Tìm kiếm dữ liệu trong listbox từ textboxOption Explicit Option Compare Text Public ArrayData, MaxRow&, MaxCol%, TempArr() Public Sub faytLstBxMultiCol(strSearchTxt$, _ ListBox As MSForms.ListBox) '--------------------------------------------------------------------------------- '# Code tim kiem nhieu cot trong Listbox. '# Tac gia: HeSanbi - GPE '--------------------------------------------------------------------------------- On Error Resume Next '----------------------------- [ bãy lôi ] Dim I&, J%, r& For I = 1 To MaxRow For J = 1 To MaxCol: If ArrayData(I, J) Like "*" & strSearchTxt & "*" Then GoTo AddArr: Next If False Then AddArr: r = r + 1 For J = 1 To MaxCol TempArr(r, J) = ArrayData(I, J) If J = 5 And TempArr(r, J) >= 1000 Then _ TempArr(r, J) = (ArrayData(I, J)) Next End If Next With ListBox .Clear: .AddItem If r = 0 Then GoTo EH_Exit ReDim result(1 To r, 1 To MaxCol) GoSub TranTempArr: .List = result End With EH_Exit: Exit Sub TranTempArr: For I = 1 To r: For J = 1 To MaxCol: result(I, J) = TempArr(I, J): Next J, I Return End Sub

Bước 2 : Tạo 1 USERFORM -> Tạo 1 TEXTBOX chọn View Code -> Copy code dưới vào.

Private Sub TextBox1_Change() ' khi tim bat dau tim kiem thi call du lieu trong texbox Call faytLstBxMultiCol(Me.TextBox1.Value, Me.ListBox1) End Sub

Bước 3 : Tạo 1 LISTBOX , bạn chọn VIEW CODEUSERFORM.

Sửa dữ liệu trong listbox trong excel
Tìm kiếm dữ liệu trong listbox từ textbox

Sau đó, các bạn copy đoạn Code này vào.

Sub ganSourceListbox() On Error Resume Next With Sheet1.Range("A1") MaxCol = Sheet1.Range("A1").End(xlToRight).Column '--- hàng MaxRow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row - 1 '---- c?t ArrayData = .Resize(MaxRow, MaxCol).Value End With ReDim TempArr(1 To MaxRow, 1 To MaxCol) ListBox1.List = ArrayData End Sub

Maxcol : là tiêu đề bảng dữ liệu ( xác định có bao nhiêu cột dữ liệu ).

MaxRow : là lấy số hàng cuối cùng của bảng dữ liệu.

Listbox1 : là tên của listbox bạn mới tạo.

Bước 4: Bạn cần copy đoạn Code dưới này vào, ở đây khi userform khởi chạy thì đồng thời gắn dữ liệu vào Private Sub UserForm_Initialize() Call ganSourceListbox End Sub

DOWN BẢN DEMO

Chúc các bạn thành công, các bạn có thể comment phía dưới hoặc liên hệ admin thể giúp trả lời thắc mắc cho bạn nhanh nhất có thể.

Tham khảo thêm các bài viết.

Chuyển đổi số thành chữ viết bằng Code VBA

Tạo phạm vi nhập liệu cho Textbox trong VBA

5/5 - (1 bình chọn)