Xin code VBA làm báo cáo tự động (2 người xem)

  • Thread starter Thread starter soonwi
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

soonwi

Thành viên mới
Tham gia
29/4/09
Bài viết
23
Được thích
2
Gửi các cao thủ trong diễn đàn
Mình có file đính kèm gồm 2 sheet 2018 và Bao cao
Bạn nào có thể giúp mình viết VBA code làm sao để khi mình thao tác gõ ngày tháng bên sheet Báo cáo vào 2 ô C6 và C7 thì VBA tự động copy giá trị ở những cột tương ứng bên sheet 2018 nằm trong phạm vi ngày tháng đã chọn và paste vào các cột cùng tên bên sheet Báo cáo.
Cột ngày tháng để tham chiếu để lọc dữ liệu bên sheet 2018 là cột D
Sau khi xong nếu mình xóa ngày tháng ở 2 ô C6 và C7 ở sheet Bao cao thì nội dung bên dưới được xóa trắng để làm báo cáo cho tháng sau.
Trân trọng cảm ơn!
 

File đính kèm

Bạn xài macro sự kiện này:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim Rws As Long, W As Long, Col As Integer
 Dim Arr()
 If Not Intersect(Target, [c7]) Is Nothing Then
    [b9].CurrentRegion.Offset(1).ClearContents
    If Target.Value = "" Then
    ElseIf Target.Offset(-1).Value > Target.Value Then
        MsgBox "Ban Cân Nhâp Ngày Khác", , "GPE.COM Xin Chào!"
    Else
        [B10].CurrentRegion.Offset(1).ClearContents
        With Sheets("2018").[d9]
            Rws = .CurrentRegion.Rows.Count
            Arr() = .Resize(Rws, 9).Value
        End With
        ReDim dArr(1 To Rws, 1 To 8)
        For j = 1 To UBound(Arr())
            If Arr(j, 1) >= [C6].Value And Arr(j, 1) <= [c7].Value Then
                W = W + 1:                  dArr(W, 1) = W
                For Col = 2 To 8
                    dArr(W, Col) = Arr(j, IIf(Col > 7, Col + 1, Col))
                Next Col
            End If
        Next j
    End If
    If W Then
        [A10].Resize(W, 8).Value = dArr()
    End If
 End If
End Sub
 
Cảm ơn bạn, mình sẽ test thử
 
Web KT

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

  • Dán lên cao
Trả lời
26
Đọc
9K
Back
Top Bottom