Hàm SumPower nhiều tính năng mới

hoangdanh282

Member
Hội viên mới
Bạn muốn cộng giá trị của những ô mà những ô này có mầu nền (hay màu font chữ) là màu đỏ hay có màu nền (hay màu font chữ) giống như mầu nên của một ô nào đó làm mẫu?
Bạn muốn cộng các ô có mầu hay không có mầu. Có font chữ in đậm hay font bình thường.
Mình xin gửi đến các bạn hàm SumPower :

Cú pháp hàm như sau :

SumPower(Loại hàm, Điều kiện, Vùng1, Vùng2….)
Loại hàm :
1 : Cộng các ô có hay không có chứa giá trị lỗi
2 : Cộng các ô có giá trị bằng ("=") với Điều kiện
3 : Cộng các ô có giá trị nhỏ hơn ("<") Điều kiện
4 : Cộng các ô có giá trị lớn hơn (">") Điều kiện
5 : Cộng các ô có hay không có chứa công thức
6 : Cộng các ô có hay không có chứa font chữ in đậm
7 : Cộng các ô có hay không có chứa mầu font chữ
8 : Cộng các ô có chứa mầu font chữ tương tự như ô Điều kiện
9 : Cộng các ô có hay không có chứa mầu nền
10 : Cộng các ô có chứa mầu nền tương tự như ô Điều kiện
Điều kiện :
Ứng với mỗi loại hàm thì sẽ có một điều kiện khác nhau
0 : Không
1 : Có (VD như muốn công các ô có màu thì ghi 1, ngược lại ghi 0)
RefCell : Một ô nào đó được chọn làm ô so sánh. Tham số này sử dụng đối với chức năng 8 và 10

Và đây là hàm SumPower :
Mã:
Public Function SumPower(TypeFunc As Byte, Source As Variant, ParamArray AllRange() As Variant) As Double
Dim Rng As Variant, Cell As Range, SumT As Double
Application.Volatile
With WorksheetFunction
Select Case TypeFunc
Case 1 'Cong các ô có hay không có chua Giá Tri Loi
    For Each Rng In AllRange()
        For Each Cell In Union(Rng.SpecialCells(2, 19), Rng.SpecialCells(-4123, 19))
        If -IsError(Cell) = Source Then SumT = .Sum(SumT, Cell)
        Next
    Next
    GoTo Finish
Case 2 'Cong các ô có Giá Tri bang gia tri nguon "Source"
    For Each Rng In AllRange()
        For Each Cell In Union(Rng.SpecialCells(2, 19), Rng.SpecialCells(-4123, 19))
            If Not IsError(Cell) Then
                If Val(Cell) = Source Then
                    SumT = .Sum(SumT, Val(Cell))
                End If
            End If
        Next
    Next
    GoTo Finish
Case 3 'Cong các ô có Giá Tri nho hon gia tri nguon "Source"
    For Each Rng In AllRange()
        For Each Cell In Union(Rng.SpecialCells(2, 19), Rng.SpecialCells(-4123, 19))
            If Not IsError(Cell) Then
                If Val(Cell) < Source Then
                    SumT = .Sum(SumT, Val(Cell))
                End If
            End If
        Next
    Next
    GoTo Finish
Case 4 'Cong các ô có Giá Tri lon hon gia tri nguon "Source"
    For Each Rng In AllRange()
        For Each Cell In Union(Rng.SpecialCells(2, 19), Rng.SpecialCells(-4123, 19))
            If Not IsError(Cell) Then
                If Val(Cell) > Source Then
                    SumT = .Sum(SumT, Val(Cell))
                End If
            End If
        Next
    Next
    GoTo Finish
Case 5 'Cong các ô có hay không có chua Công Thuc
    For Each Rng In AllRange()
        For Each Cell In Union(Rng.SpecialCells(2, 19), Rng.SpecialCells(-4123, 19))
            If Not IsError(Cell) Then
                If -Cell.HasFormula = Source Then
                    SumT = .Sum(SumT, Val(Cell))
                End If
            End If
        Next
    Next
    GoTo Finish
Case 6 'Cong các ô có hay không có chua Font Chu In Dam
    For Each Rng In AllRange()
       For Each Cell In Union(Rng.SpecialCells(2, 19), Rng.SpecialCells(-4123, 19))
            If Not IsError(Cell) Then
                If -Cell.Font.Bold = Source Then
                    SumT = .Sum(SumT, Val(Cell))
                End If
            End If
        Next
    Next
    GoTo Finish
Case 7 'Cong các ô có hay không có chua Mau Font Chu
    For Each Rng In AllRange()
        For Each Cell In Union(Rng.SpecialCells(2, 19), Rng.SpecialCells(-4123, 19))
            If Not IsError(Cell) Then
                If -(Cell.Font.ColorIndex > 0) = Source Then
                    SumT = .Sum(SumT, Val(Cell))
                End If
            End If
        Next
    Next
    GoTo Finish
Case 8 'Cong các ô có chua Mau Font Chu tuong tu nhu ô goc "Source"
    For Each Rng In AllRange()
        For Each Cell In Union(Rng.SpecialCells(2, 19), Rng.SpecialCells(-4123, 19))
            If Not IsError(Cell) Then
                If Cell.Font.ColorIndex = Source.Font.ColorIndex Then
                    SumT = .Sum(SumT, Val(Cell))
                End If
            End If
        Next
    Next
    GoTo Finish
Case 9 'Cong các ô có hay không có chua Mau Nen
    For Each Rng In AllRange()
        For Each Cell In Union(Rng.SpecialCells(2, 19), Rng.SpecialCells(-4123, 19))
            If Not IsError(Cell) Then
                If -(Cell.Interior.ColorIndex > 0) = Source Then
                    SumT = .Sum(SumT, Val(Cell))
                End If
            End If
        Next
    Next
    GoTo Finish
Case 10 'Cong các ô có chua Mau Nen tuong tu nhu ô goc "Source"
    For Each Rng In AllRange()
        For Each Cell In Union(Rng.SpecialCells(2, 19), Rng.SpecialCells(-4123, 19))
            If Not IsError(Cell) Then
                If Cell.Interior.ColorIndex = Source.Interior.ColorIndex Then
                    SumT = .Sum(SumT, Val(Cell))
                End If
            End If
        Next
    Next
End Select
End With
Finish: SumPower = SumT
End Function
-----------------------------------------------------------------------------------------
Gợi ý cách dùng hàm SumPower :
Do đây là hàm tự tạo nên bạn phải thao tác một chút mới sử dụng đươc :

1/ Mở file excel ra, bấm Alt+F11, Vào Insert\Module\ok.
Sau khi xuất hiện Module1 thì bạn copy đoạn code trên, nhấp đúp vào nó, vào khung soạn thảo bên phải và paste đoạn code trên vào. Sau đó sử dụng như hàm bình thường.

2\ Cách làm trên chỉ sử dụng được trong file chứa đoạn code trên mà thôi, muốn sử dụng chúng cho tất các các file thì ta làm như sau :
Cũng làm như cách trên. sau khi paste xong thì ta vào File\Save as. Tên file thì bạn tự đặt. Chọn kiểu file lưu là add-ins. ok
Thoát ra màn hình excel, vào tool\add-ins, bấm vào Browse chọn file ta mới lưu xong. ok, sử dụng bình thường

Các bạn nhớ vào Tool\macro\securities để chỉnh mức Low hay medium.
 
Sửa lần cuối:

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top