Lọc dữ liệu thành báo cáo thu gọn

Liên hệ QC

toangm

Thành viên mới
Tham gia
17/4/08
Bài viết
32
Được thích
5
Nhờ các anh chị giúp em code VBA để lọc dữ liệu từ một bảng theo IDSub rồi tạo thành báo cáo thu gọn bằng VBA với!picVBA.png
 

File đính kèm

  • LocDulieu_VBA.xlsm
    18.6 KB · Đọc: 7

File đính kèm

  • LocDulieu_VBA (1).xlsm
    26.6 KB · Đọc: 14
Em chạy code nếu thêm 5 mã IDSub giống nhau thì chương trình bị lỗi. Anh giúp em xử lý lỗi này với!View attachment 262587
Chỉnh code
Mã:
Sub LOC()
  Dim Arr(), KQ(), aCol, idSub$, tong#, i&, j&, t&
 
  With Sheets("Data")
    Arr = .Range("A3:N" & .Cells(Rows.Count, 1).End(xlUp).Row).Value
  End With
  ReDim KQ(1 To UBound(Arr) + 2, 1 To 9)
  aCol = Array(, , 2, 3, 4, 5, 8, 9, 14)
  With Sheets("rptBKTGT")
    idSub = .Range("B2").Value
    For i = 1 To UBound(Arr)
      If Arr(i, 1) = idSub Then
        t = t + 1
        KQ(t, 1) = t
        For j = 2 To 8
          KQ(t, j) = Arr(i, aCol(j))
        Next j
        If KQ(t, 4) = Empty Then KQ(t, 4) = Arr(i, 6)
        tong = tong + Arr(i, 5)
      End If
    Next
    KQ(t + 1, 2) = .Range("J1").Value:    KQ(t + 1, 5) = tong
    KQ(t + 2, 2) = .Range("J2").Value:    KQ(t + 2, 5) = .Range("J3").Value
    i = .Cells(Rows.Count, 2).End(xlUp).Row
    If i > 3 Then .Range("A4:H" & i).Clear
    If t > 0 Then
      .Range("D4").Resize(t).NumberFormat = "@"
      .Range("F4").Resize(t, 2).NumberFormat = "@"
      .Range("A4").Resize(t + 2, 8) = KQ
      .Range("A4").Resize(t + 1, 8).Borders.LineStyle = 1
    End If
  End With
  MsgBox "Xong"
End Sub
 

File đính kèm

  • Screenshot (11).png
    Screenshot (11).png
    333.2 KB · Đọc: 7
Em muốn nhờ giúp thêm code VBA để thêm một tùy chọn nữa để tổng hợp tạo thành đoạn văn bản như dưới. Em xin cảm ơn!
PicTH.png
 

File đính kèm

  • LocDulieu_VBA_Txt.xlsm
    26.7 KB · Đọc: 2

File đính kèm

  • LocDulieu_VBA_Txt.xlsm
    29 KB · Đọc: 7
Web KT
Back
Top Bottom