vba function that return #value

ahmedGhnam

New Member
Joined
Oct 15, 2022
Messages
2
Office Version
  1. 2016
Platform
  1. Windows
I have this function that sum cells by colors from conditionally format but it return #value
i need help in this please.

VBA Code:
Function SumByColor(sumCells As Range, sumColor As Range) As Integer
Dim TotalSum As Long
Dim sumColorValue As Long
sumColorValue = sumColor.DisplayFormat.Interior.ColorIndex
TotalSum = 0
For Each rCell In sumCells
    If rCell.DisplayFormat.Interior.ColorIndex = sumColorValue Then
            TotalSum = TotalSum + rCell.Value
    End If
Next rCell
SumByColor = TotalSum
End Function
 
Last edited by a moderator:

Excel Facts

Who is Mr Spreadsheet?
Author John Walkenbach was Mr Spreadsheet until his retirement in June 2019.
Hi & welcome to MrExcel.
You cannot use Display format inside a udf, you need to use a workaround like
VBA Code:
Function SumByColor(sumCells As Range, sumColor As Range) As Long
Dim TotalSum As Long
Dim sumColorValue As Long
sumColorValue = Evaluate("getcfcolour(" & sumColor.Address(, , , 1) & ")")
TotalSum = 0
For Each rCell In sumCells
    If Evaluate("getcfcolour(" & rCell.Address(, , , 1) & ")") = sumColorValue Then
            TotalSum = TotalSum + rCell.Value
    End If
Next rCell
SumByColor = TotalSum
End Function
Function GetCFColour(cl As Range) As Long
   GetCFColour = cl.DisplayFormat.Interior.ColorIndex
End Function
 
Upvote 0
Solution
You're welcome & thanks for the feedback.
 
Upvote 0

Forum statistics

Threads
1,215,149
Messages
6,123,311
Members
449,095
Latest member
Chestertim

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top