COUNTFORMAT

COUNTFORMAT()
Returns the number of cells that have been formatted with multiple attributes.

rgeValuesThe range of values
geExampleCellThe cell whose format you want to count
bCheckBackGroundWhether you want to check the background formatting
bCheckFontColorWhether you want to check the text formatting

REMARKS
This function will not update automatically every time a cell format changes although pressing F9 will work.
Need a function that can detect any cell formatting (not a specific colour)
4 Functions that allow you to count different types of formatting.
* You can use the built-in COUNT function to
* You can use the user defined COUNTSUBSTRING function to
Public Function COUNTFORMAT( _

Public Function COUNTFORMAT( _ 
         ByVal rgeValues As Range, _
         ByVal rgeExampleCell As Range, _
Optional ByVal bCheckBackGround As Boolean = True, _
Optional ByVal bCheckFontColor As Boolean = False, _
Optional ByVal bCheckFontBold As Boolean = False) _
         As Integer

Dim objcell As Range
Dim itotalcells As Integer
Dim bbackground_check As Boolean
Dim bfontcolour_check As Boolean
Dim bfontbold_check As Boolean

   itotalcells = 0
   For Each objcell In rgeValues
      bbackground_check = True
      bfontcolour_check = True
      bfontbold_check = True
   
      If (bCheckBackGround = True) Then
         If objcell.Interior.ColorIndex <> rgeExampleCell.Interior.ColorIndex Then
            bbackground_check = False
         End If
      End If

      If (bCheckFontColor = True) Then
         If objcell.Font.ColorIndex <> rgeExampleCell.Font.ColorIndex Then
            bfontcolour_check = False
         End If
      End If

      If (bCheckFontBold = True) Then
         If (objcell.Font.Bold = False) Then
            bfontbold_check = False
         End If
      End If
   
      If (bbackground_check = True) And (bfontcolour_check = True) And (bfontbold_check = True) Then
         itotalcells = itotalcells + 1
      End If
   
   Next objcell
   
   COUNTFORMAT = itotalcells
End Function


COUNTFORMAT_CELLCOLOR

Returns the number of cells that have been formatted with a particular colour.

'rgeSearchCells - The range of cells you want to check
'rgeExampleCell - The cell with the colour you want to count

Public Function COUNTFORMAT_CELLCOLOR( _
         ByVal rgeColouredCells As Range, _
         ByVal rgeExampleCell As Range) As Long

Dim ltotal As Long
Dim rgecell As Range
Dim lcellcolour As Long

   lcellcolour = rgeExampleCell.Interior.ColorIndex
   For Each rgecell in rgeColouredCells
      If rgecell.Interior.ColorIndex = lcellcolour Then
         ltotal = ltotal + 1
      End If
   Next rgecell

   COUNTFORMAT_CELLCOLOR = ltotal
End Function

COUNTFORMAT_FONTBOLD

Returns the number of cells that have been formatted in bold.

'rgeSearchCells - The range of cells you want to check

Public Function COUNTFORMAT_FONTBOLD( _
         ByVal rgeSearchCells As Range) As Long
    
Dim ltotal As Long
Dim rgecell As Range

   For Each rgecell In rgeSearchCells
      If (rgecell.Font.Bold = True) Then
         ltotal = ltotal + 1
      End If
   Next rgecell
        
   COUNTFORMAT_FONTBOLD = ltotal
End Function

COUNTFORMAT_FONTCOLOR

Returns the number of cells that have been formatted with a particular font colour.

'rgeSearchCells - The range of cells you want to check
'rgeExampleCell - The cell with the font colour you want to count

Public Function COUNTFORMAT_FONTCOLOR( _
         ByVal rgeSearchCells As Range, _
         ByVal rgeExampleCell As Range) As Long
    
Dim ltotal As Long
Dim lfontcolor As Long
Dim rgecell As Range

   lfontcolor = rgeExampleCell.Font.Color
   For Each rgecell In rgeSearchCells
      If (rgecell.Font.Color = lfontcolor) Then
         ltotal = ltotal + 1
      End If
   Next rgecell
        
   COUNTFORMAT_FONTCOLOR = ltotal
End Function

For instructions on how to add these functions to a workbook refer to the page under Inserting Functions


© 2026 Better Solutions Limited. All Rights Reserved. © 2026 Better Solutions Limited TopPrevNext