CÔNG TY CỔ PHẦN BLUESOFTS

CÔNG TY CỔ PHẦN BLUESOFTS

Lọc dữ liệu theo yêu cầu trong Excel

Mình xin chia sẽ các bạn một bài toán cụ thể mà học viên học khóa học Lập trình VBA trong Excel cơ bản đã đưa ra yêu cầu theo nhu cầu thực tế của công ty bạn ấy. Phần dữ liệu mình có xóa bớt một số trường nhưng không làm ảnh hưởng tới yêu cầu và kết quả của bài toán.

Yêu cầu: Lọc ra MÃ HÀNG có SLG BÁN >0 hoặc SLG KHUYẾN MÃI > với yêu cầu như sau: 
+ Nếu SLG BÁN>0 -> Lấy MÃ HÀNG từ bảng dữ liệu điền vào cột MÃ HÀNG , SLG BÁN vào cột SLG ở sheet kết quả cần hiển thị (Sheet2).
 Nếu SLG BÁN>0 -> SLG KHUYẾN MÃI >0 -> Lấy MÃ HÀNG từ bảng dữ liệu điền vào cột MÃ HÀNG , SLG BÁN vào cột  SLG BÁN, điền tiếp MÃ HÀNG đó vào dòng tiếp theo, SLG KHUYẾN MÃI vào dòng MÃ HÀNG vừa điền ở cổ SLG trong sheet kết quả cần hiển thị (Sheet2).
+  Nếu SLG KHUYẾN MÃI>0-> Lấy MÃ HÀNG từ bảng dữ liệu điền vào cột MÃ HÀNG, SLG KHUYẾN MÃI vào cột  SLG ở sheet kết quả cần hiển thị (Sheet2) 
 
 
Bước 1: Các bạn vào môi trường lập trình của Excel (phím tắt ALT+F11), tạo một module và copy code dưới đây vào trong module vừa tạo:
Sub LayDuLieuTheoY()
    Dim shData As Object
    Dim shBaoCao As Object
    Set shData = Sheets("PHX_HoaDon")
    Set shBaoCao = Sheets("Sheet2")
    Dim i As Long
    Dim a As Long
    a = shBaoCao.Range("B" & shBaoCao.Columns(1).Rows.Count).End(xlUp).Row
    For i = 8 To shData.Range("B" & shData.Columns(1).Rows.Count).End(xlUp).Row
        If shData.Cells(i, 4).Value > 0 Then
            a = a + 1
            shBaoCao.Cells(a, 2).Value = shData.Cells(i, 2).Value
            shBaoCao.Cells(a, 3).Value = shData.Cells(i, 4).Value
            If shData.Cells(i, 5).Value > 0 Then
                a = a + 1
                shBaoCao.Cells(a, 2).Value = shData.Cells(i, 2).Value
                shBaoCao.Cells(a, 3).Value = shData.Cells(i, 5).Value
            End If
        Else
            If shData.Cells(i, 5).Value > 0 Then
                a = a + 1
                shBaoCao.Cells(a, 2).Value = shData.Cells(i, 2).Value
                shBaoCao.Cells(a, 3).Value = shData.Cells(i, 5).Value
            End If
        End If
    Next i
End Sub
Sau khi copy code vào module thì code hiển thị trong module như sau:
 
 
Bước 2: Tạo nút bấm: Sau khi các bạn copy xong code, các bạn trở về môi trường bảng tính, vào menu Developer -> Insert -> chọn vào Button.
 
 
Sau khi click vào Button-> các bạn đặt chuột vào 1 vị trí trong bảng tính, giữ chuột trái và kéo một vùng vừa đủ nút bấm theo mong muốn của bạn. Sẽ hiển thị ra bảng thông báo Assign Macro, bạn chọn vào macro cần gán -> chọn vào OK.
 
 
Khi gán xong macro, bạn đổi tên nút bấm theo yêu cầu bài toán.
 
 
Bước 3: Bạn click chuột ra ngoài nút bấm, và click chuột trái lại lên nút bấm đề nhận kết quả.
 
 
Để xem đầy đủ nội dung khóa đào tạo VBA cơ bản, các bạn tham khảo ở link đây. Link khóa học
Các bạn vào đây tải file ví dụ: DOWNLOAD
 
Tác giả: Hoàng Phong - Công ty Cổ phần Bluesofts