Thursday, November 8, 2018

Code Vba Thông Dụng Trong Excel - Bài 6

Chào các bạn, Hôm trước trong bài thứ 5 mình đã giới thiệu về code sắp xếp trong excel. Các code này rất hữu ích. Vì hiện nay đa phần các bạn dùng thủ công để thực hiện các thao tác, việc này rất tốn thời gian và hiệu suất công việc kém. Hôm nay mình xin giới thiệu đến các bạn code tìm kiếm nhanh dữ liệu để chỉnh sửa khi có sự thay đổi.

Hiện nay, khi các bạn tìm kiếm dữ liệu trong một vùng dữ liệu nhiều dòng, các bạn thường dùng Filter để tìm. Việc đó cũng không sao, tuy nhiên các bạn thường thực hiện nhiều bước. Vì vậy mình xin giới thiệu đến các bạn đoạn code sau, đoạn code này sẽ giúp các bạn tìm kiếm nhanh dữ liệu để chỉnh sửa.

+ Đoạn code như sau:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 3 And Target.Row = 5 Then 'ô C5
    ActiveSheet.Range("$B$7:$Q$5000").AutoFilter Field:=3, Criteria1:="=*" & Range("C5:C5").Value & "*", _
        Operator:=xlFilterValues
ElseIf Target.Column = 4 And Target.Row = 5 Then 'ô D5
    ActiveSheet.Range("$B$7:$Q$5000").AutoFilter Field:=4, Criteria1:="=*" & Range("D5:D5").Value & "*", _
        Operator:=xlFilterValues
ElseIf Target.Column = 5 And Target.Row = 5 Then 'ô E5
    ActiveSheet.Range("$B$7:$Q$5000").AutoFilter Field:=5, Criteria1:="=*" & Range("E5:E5").Value & "*", _
        Operator:=xlFilterValues
ElseIf Target.Column = 6 And Target.Row = 5 Then 'ô F5
    ActiveSheet.Range("$B$7:$Q$5000").AutoFilter Field:=6, Criteria1:="=*" & Range("F5:F5").Value & "*", _
        Operator:=xlFilterValues
ElseIf Target.Column = 7 And Target.Row = 5 Then 'ô G5
    ActiveSheet.Range("$B$7:$Q$5000").AutoFilter Field:=7, Criteria1:="=*" & Range("G5:G5").Value & "*", _
        Operator:=xlFilterValues
ElseIf Target.Column = 8 And Target.Row = 5 Then 'ô H5
    ActiveSheet.Range("$B$7:$Q$5000").AutoFilter Field:=8, Criteria1:="=*" & Range("H5:H5").Value & "*", _
        Operator:=xlFilterValues
ElseIf Target.Column = 9 And Target.Row = 5 Then 'ô I5
    ActiveSheet.Range("$B$7:$Q$5000").AutoFilter Field:=9, Criteria1:="=*" & Range("I5:I5").Value & "*", _
        Operator:=xlFilterValues
End If
End Sub
- Mình sẽ giới thiệu từng phần trong đoạn code này như sau:

1. ("$B$7:$Q$5000"): Đây là vùng dữ liệu toàn bộ của bảng tính đang có. Cần phải chọn hết.
2. Column = 3 And Target.Row = 5: 3 Là số thứ tự cột của ô mà bạn chọn để đánh ký tự tìm kiếm vào.
- 5: Là số thứ tự dòng của ô mà bạn chọn để đánh ký tự tìm kiếm vào.
3.  Field:=3: 3 Là số thứ tự cột của ô mà bạn chọn để đánh ký tự tìm kiếm và để excel sort dữ liệu.
4. Range("C5:C5"): C5:C5: Là ô mà bạn chọn để nhập ký tự tìm kiếm. Đây là chỉ định ô nhập mà thôi.
5: ElseIf Target.Column = 9 And Target.Row = 5 Then 'ô I5
    ActiveSheet.Range("$B$7:$Q$5000").AutoFilter Field:=9, Criteria1:="=*" & Range("I5:I5").Value & "*", _
Operator:=xlFilterValues
Tương tự các bạn muốn tạo ô để nhập ký tự tìm kiếm ở chỗ trường dữ liệu nào, thì chỉ cần các bạn copy nguyên như dòng ở mục 5, mình tô đỏ để enter xuống dòng và dán tiếp vào bên dưới mà thôi.
+ Thường các ô chỉ định dùng để nhập ký tự tìm kiếm là các ô ở trên các trường thông tin của mỗi cột dữ liệu.
=> Khi các bạn muốn tìm kiếm thì các bạn chỉ cần đánh ký tự tìm kiếm bất kỳ vào ô đã chỉ định trên trường thông tin cần tìn kiếm. Sau đó bấm Enter để tìm, code sẽ tự lọc ra các dòng có chứa thông tin bạn cần tìm kiếm.
+ Khi đã chọn được dòng cần chỉnh sửa, các bạn chỉ cần sửa lại thông tin ở dòng đó.
+ Mình sẽ gửi kèm các bạn hình ảnh để các bạn tham khảo cách làm ở bên dưới nhé.
+ Việc copy code này và đưa vào trong Sheet cần tìm kiếm, mình đã giới thiệu ở các bài trước. Nay mình xin đăng lại hình ảnh để các bạn tiện thao tác.
- Đầu tiên các bạn bấm ALT + F11 để vào cửa sổ VBAPROJECT như hình sau.
- Tiếp theo các bạn kích đúp chuột vào tên sheet mà bạn muốn đặt code này vào, sau đó tiến hành copy đoạn code của mình qua và dán vào phần bên phải của của sổ như hình bên dưới.
- Cuối cùng các bạn bấm lưu code, sau khi code được lưu xong, các bạn tắt cửa sổ Vba và quay lại file excel của mình để xem thành quả nhé. Hình 3.
- Tiếp theo các bạn tạo các ô tìm kiếm giống như hình dưới đây. Các ô tìm kiếm là các ô có màu xám nhé.
=> Vậy là mình đã giới thiệu xong đến các bạn đoạn code tìm kiếm nhanh dữ liệu. Còn nhiều code rất thú vị và hay ở các bài sau, mình sẽ gửi các bạn sau nhé.
Chúc các bạn thành công. Nếu chưa rõ, các bạn có thể Comment vào bài viết nhé.
Cảm ơn và chào các bạn!

0 comments:

Post a Comment