Chào mừng đến với Diễn đàn Dân Kế Toán - Kế toán tổng hợp thực tế.
Kết quả 1 đến 2 của 2
  1. #1
    Ngày tham gia
    Nov 2015
    Bài viết
    95

    Hàm SumPower nhiều tính năng 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.

  2. #2
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Bạn ơi, bạn có thể chho VD ntn hog , mình làm như vậy mà ko dc
    Hic

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •