GTK-PM
Thành viên thường trực




- Tham gia
- 10/11/13
- Bài viết
- 313
- Được thích
- 15
Nhờ anh chị trên diễn đàn giúp đỡ em sửa chữa code này sao cho phù hợp với bảng tính này.
Em muốn sửa sheet Chi tiết để thống kê chi tiết từng khoản mục từ sheet QuyTM
+ Theo tài khoản hàng F5
+ Theo công trình hàng F6
+ Và theo ngày H1 & H3
Nếu trường hợp 1 trong 3 ô không có dữ liệu thì chỉ thống kê theo 2 điều kiện còn lại ( hoặc 2 ô không yêu cầu thống kê thì chỉ lọc 1 điều kiện còn lại )
Hiện tại em đã có code của A. Bate tham khảo nhưng sửa mãi không được, rất mong anh chị giúp đỡ sửa chữa giúp em
Em muốn sửa sheet Chi tiết để thống kê chi tiết từng khoản mục từ sheet QuyTM
+ Theo tài khoản hàng F5
+ Theo công trình hàng F6
+ Và theo ngày H1 & H3
Nếu trường hợp 1 trong 3 ô không có dữ liệu thì chỉ thống kê theo 2 điều kiện còn lại ( hoặc 2 ô không yêu cầu thống kê thì chỉ lọc 1 điều kiện còn lại )
Hiện tại em đã có code của A. Bate tham khảo nhưng sửa mãi không được, rất mong anh chị giúp đỡ sửa chữa giúp em
Mã:
Option Explicit
Public Sub Bc_LoaiVT()
Dim sArr(), dArr(1 To 100, 1 To 9), I As Long, K As Long, Tong As Long
Dim fDate As Long, eDate As Long, MaVT As String
With Sheets("Bc LoaiVatTu")
fDate = .Range("E5").Value
eDate = .Range("G5").Value
MaVT = .Range("E6").Value
End With
'-----------------------------------------------
With Sheets("NHAP")
sArr = .Range("C10", .Range("C10").End(xlDown)).Resize(, 17).Value
End With
For I = 1 To UBound(sArr)
If sArr(I, 2) <= eDate Then
If sArr(I, 2) >= fDate Then
If sArr(I, 4) = MaVT Then
K = K + 1
dArr(K, 1) = sArr(I, 1): dArr(K, 2) = sArr(I, 2)
dArr(K, 3) = sArr(I, 5): dArr(K, 5) = sArr(I, 12)
dArr(K, 6) = sArr(I, 14): dArr(K, 9) = sArr(I, 17)
End If
End If
End If
Next I
'--------------------------------------------
With Sheets("XUAT")
sArr = .Range("C10", .Range("C10").End(xlDown)).Resize(, 16).Value
End With
For I = 1 To UBound(sArr)
If sArr(I, 2) <= eDate Then
If sArr(I, 2) >= fDate Then
If sArr(I, 4) = MaVT Then
K = K + 1
dArr(K, 1) = sArr(I, 1): dArr(K, 2) = sArr(I, 2)
dArr(K, 5) = sArr(I, 11)
dArr(K, 7) = sArr(I, 13): dArr(K, 9) = sArr(I, 16)
End If
End If
End If
Next I
'-----------------------
If K < 1 Then
MsgBox "Khong Tim Thay Du Lieu", , "gpe.com"
Exit Sub
End If
With Sheets("Bc LoaiVatTu")
.Range("B12").Resize(K, 9) = dArr
.Range("B12").Resize(K, 9).Sort Key1:=.Range("C12")
sArr = .Range("B12:J12").Resize(K).Value
For I = 1 To K
Tong = Tong + sArr(I, 6) - sArr(I, 7)
sArr(I, 8) = Tong
Next I
.Rows("12:450").EntireRow.Hidden = False
.Rows(12 + K & ":450").EntireRow.Hidden = True
.Range("B12:J450").ClearContents
.Range("B12").Resize(K, 9) = sArr
[E6].Interior.ColorIndex = 34 + 9 * Rnd() \ 1
End With
End Sub
File đính kèm
Lần chỉnh sửa cuối: