Cộng Số Theo Màu

Liên hệ QC
Bạn phải giãi nén file .ZIP của tôi ra trước.. đặt nó trong 1 thư mục nào đó... Khi vào Menu Tools\Addins, bấm Browse thì hảy Browse tới đúng ngay thư mục có chứa file .XLA chứ... Đâu phải chỉ bấm Browse 1 cái là dc liền đâu... Khi nào tới đúng ngay thư mục có chưa file XLA thì file sẽ hiện
 
Bác anhtuan ơi
em đã lưu file trong Add ins rồi
nhưng mà kết quả vẫn là #NAME?
bác giúp em nốt bác ơi
 
Bác anhtuan ơi em đã lưu file trong Add ins rồi nhưng mà kết quả vẫn là #NAME? bác giúp em nốt bác ơi
Bạn giải nén file đó ra đặt vào thư mục C:\Program Files\Microsoft Office\OFFICE11\XLSTART\ Vậy giờ thử lại xem!
 
Lần chỉnh sửa cuối:
Em đã làm theo hướng dẫn rôi nhưng khi tính thì lại sai. Các bác cho em hỏi cái hàm "ColorBorder(..) là đếm theo mầu hay cộng theo mầu ô đó, em thấy nó toàn đếm thôi, mong các chỉ giáo, em đang làm kế hoạch vốn nên cần cái này lắm.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Mình giới thiệu với bạn 2 hàm :
SumMau(Vung;Mau) : Chỉ tính cho 2 màu
PHP:
Function SumMau(Vung As Range, Mau As String) As Double
    Dim OKe As Range
    Dim SumDo, SumXanh As Double
    For Each OKe In Vung
        Select Case OKe.Font.ColorIndex
            Case 3
                SumDo = SumDo + OKe.Value
            Case 5
                SumXanh = SumXanh + OKe.Value
        End Select
    Next
    If UCase(Mau) = "DO" Then
        SumMau = SumDo
    ElseIf UCase(Mau) = "XANH" Then
        SumMau = SumXanh
    End If
    
    Set OKe = Nothing
End Function
Màu đỏ : =summau(A5:K5;"Do")
Màu xanh : =summau(A5:K5;"Xanh")


SumCol(Vung) : Tính cho bất cứ màu nào
PHP:
Function SumCol(Vung As Range) As Double
    Dim OKe As Range
    Dim i As Long
    i = ActiveCell.Font.ColorIndex
    For Each OKe In Vung
        If OKe.Font.ColorIndex = i Then SumCol = SumCol + OKe.Value
    Next
    Set OKe = Nothing
End Function
Khi bạn cần tính màu xanh, chỉ cần bạn cho ô tổng cộng là màu xanh
Các màu khác cũng tương tự

Màu đỏ : =SumCol(A5:K5)
Màu xanh : =SumCol(A5:K5)
Màu đen : =SumCol(A5:K5)
Màu hồng : =SumCol(A5:K5)

Bạn xem File VD nhé

Thân!

Chào bác Bắp, mình là thành viên mới của diễn đàn, mình thấy ứng dụng này rất hay, mình muốn sử dụng hàm SumCol này thi phải làm thế nào, làm sao add php code vao excel huh bác? Minh hay sử dụng Google Spread sheet cua Gmail, ko biết có dùng ứng dụng này được ko?
Cám ơn bác nhiều.
 
Chào bác Bắp, mình là thành viên mới của diễn đàn, mình thấy ứng dụng này rất hay, mình muốn sử dụng hàm SumCol này thi phải làm thế nào, làm sao add php code vao excel huh bác? Minh hay sử dụng Google Spread sheet cua Gmail, ko biết có dùng ứng dụng này được ko?
Cám ơn bác nhiều.

Cái này người ta dùng macro, bạn muốn dùng được thì bấm Alt + F11 sau đó kích chuột phải chèn Modul và copy đoạn code đó gián vào, trở lại bảng tính nhập công thức bình thường
 
Em chào anh anhtuan1066! Em rất thích addins cộng theo màu chữ của anh! Nhân tiện đây em muốn hỏi anh và mọi người vấn đề này :
Em có thể dùng Colorfunction(...) để tính tổng theo màu chữ khi mình sử dụng CF để tô màu cho dữ liệu không ạ!
Em xin cảm ơn!
 
[FONT=&quot]Hình như cái này không sát với những gì mình muốn hỏi lắm. Mình không rành về Vba nên không hiểu đc mấy đoạn code này. Ý mình là làm cách nào có thể tính tổng theo màu sau khi mình đã sử dụng Conditional formating để tô màu các ô thoả mãn điều kiện. Liệu mình có thể làm như vậy được không nhỉ. Mình đã thử với colorfunction(..) cảu anh anhtuan1066 rồi nhưng không được, nó chỉ cộng đc khi mình định dạng bằng bằng format thôi![/FONT]
 
(1) Hình như cái này không sát với những gì mình muốn hỏi lắm. Mình không rành về Vba nên không hiểu đc mấy đoạn code này. Ý mình là làm cách nào có thể tính tổng theo màu sau khi mình đã sử dụng Conditional formating để tô màu các ô thoả mãn điều kiện.
(2) Liệu mình có thể làm như vậy được không nhỉ. Mình đã thử với colorfunction(..) cảu anh anhtuan1066 rồi nhưng không được, nó chỉ cộng đc khi mình định dạng bằng bằng format thôi!

(1) Là nó đó bạn, nhưng chỉ áp dụng được khi:
(*) Trong trường hợp với Condation ở dạng "Cell Value Is" thôi, còn dạng kia thì trần ai & nắm chắc fần thua.
(*) Bạn là người rành VBA

(2) Bạn hãy thữ viết hàm người dùng tìm tổng theo điều kiện mà bạn dùng nó/chúng trong khi CF xem sao; Nếu có thể bạn đưa file iêu cầu lên, may sẽ có trợ thủ cho bạn!

Thân ái! --=0
 
hỏi các bác 1 chút

Các bác cho em hỏi chút nhá
Em lưu giữ liệu vào ổ D nhưng cùng lúc đó giữ kiệu cungnx lưu vào ổ C. Bây giờ em ko muốn lưu như thế thì làm thế nào ah?Tức là mình lưu vào ổ nào thì dữ liệu chỉ lưu vào ổ đó thôi
Mng các bác giúp đỡ em.
Cang nhanh càng tôt các bác nhá
Em cảm ơn các bác!
 
cho mình hỏi 1 chút. mình có tải các file ví dụ về xem nhưng tất cả đều báo lỗi #NAME? làm thế nào để khắc phục lỗi này vậy?
 
Cho fép được đón mò nhe:

cho mình hỏi 1 chút. mình có tải các file ví dụ về xem nhưng tất cả đều báo lỗi #NAME? làm thế nào để khắc phục lỗi này vậy?

File đó có hàm tự tạo & máy bạn có cài chương trình diệt virus & nó đã chén ngọt cái hàm tự tạo của tác giả đi rồi!
 
Dear Các Anh,

Nếu áp dụng cho màu nền không phải màu FOnt chữ thì dùng VBA như thế nào các Anh?

Em mới làm quen VBA nên không rõ cách làm.


Mình giới thiệu với bạn 2 hàm :
SumMau(Vung;Mau) : Chỉ tính cho 2 màu
PHP:
Function SumMau(Vung As Range, Mau As String) As Double
    Dim OKe As Range
    Dim SumDo, SumXanh As Double
    For Each OKe In Vung
        Select Case OKe.Font.ColorIndex
            Case 3
                SumDo = SumDo + OKe.Value
            Case 5
                SumXanh = SumXanh + OKe.Value
        End Select
    Next
    If UCase(Mau) = "DO" Then
        SumMau = SumDo
    ElseIf UCase(Mau) = "XANH" Then
        SumMau = SumXanh
    End If
    
    Set OKe = Nothing
End Function
Màu đỏ : =summau(A5:K5;"Do")
Màu xanh : =summau(A5:K5;"Xanh")


SumCol(Vung) : Tính cho bất cứ màu nào
PHP:
Function SumCol(Vung As Range) As Double
    Dim OKe As Range
    Dim i As Long
    i = ActiveCell.Font.ColorIndex
    For Each OKe In Vung
        If OKe.Font.ColorIndex = i Then SumCol = SumCol + OKe.Value
    Next
    Set OKe = Nothing
End Function
Khi bạn cần tính màu xanh, chỉ cần bạn cho ô tổng cộng là màu xanh
Các màu khác cũng tương tự

Màu đỏ : =SumCol(A5:K5)
Màu xanh : =SumCol(A5:K5)
Màu đen : =SumCol(A5:K5)
Màu hồng : =SumCol(A5:K5)

Bạn xem File VD nhé

Thân!
 
Em gửi bác hàm OB này, nó không chọn tham số là 0,1 mà chọn tham số FO & BO (Font & Bold)

PHP:
Function OB(TC As Range, Vung As Range, Ham As String) As Double
    Dim F, B, i1, i2 As Long
    Dim OKe As Range
    i1 = TC.Font.ColorIndex
    i2 = TC.Interior.ColorIndex
    Select Case UCase(Ham)
    Case "FO"
        For Each OKe In Vung
            If OKe.Font.ColorIndex = i1 Then OB = OB + OKe.Value
        Next
    Case "BO"
        For Each OKe In Vung
            If OKe.Interior.ColorIndex = i2 Then OB = OB + 1
        Next
    Case Else
        OB = 0
    End Select
    Set OKe = Nothing
End Function





Thực ra tất cả các hàm số trong Excel (theo em biết) đều lấy sự kiện Sheet_Change hoặc Enter làm căn cứ để ReCalculate.
Tuy nhiên khi ta thay đổi màu sắc thì lại không thuộc sự kiện này, nên nó không tính lại.

Thân!

Thấy bác này hỏi rồi nên xin trích lại, Các bác có biện pháp giúp khi mình thay đổi màu sắc thì kết quả được cập nhật luôn được không. em đang làm mà vướng cái này.
Mong các bác giúp đỡ
 
Web KT
Back
Top Bottom