MACROS DE EXCEL

Contar celdas de color en Excel con formato condicional (macro)

Contar celdas de color en Excel con formato condicional (macro)

Contar celdas de color en Excel con formato condicional

¿Cómo podemos contar celdas por color de fondo definido con formato condicional mediante el uso de macros?

La siguiente macro nos permite contar el número de celdas que contienen un color de fondo específico definido mediante reglas de formato condicional. Para ello debemos generar una nueva función mediante la inserción de dos módulos en la ventana de Visual Basic en Excel que veremos a continuación. Esta función consta de dos argumentos principales, el primero define la celda de referencia que debe contener el color de fondo definido por formato condicional que requerimos considerar para la cuenta de celdas equivalentes dentro del rango total, y el segundo argumento define el rango total de celdas que deben ser analizadas.

Las dos instrucciones de la macros que debemos crear cómo módulos dentro de la opción «Visual Basic» del menú programador son las siguientes:

Function CONTARPORCOLORFC(CeldaColor As Range, Rango As Range) As Integer
 
Dim Celda As Range
Dim Total As Integer
Dim Color As Long
 
Color = COLORFC(CeldaColor)
 
For Each Celda In Rango.Cells
    If COLORFC(Celda) = Color Then
        Total = Total + 1
    End If
Next Celda
 
CONTARPORCOLORFC = Total
 
End Function

 

 
———————————————————————
 

Function COLORFC(Celda As Range) As Long
 
Dim ReglaActiva As Boolean
 
For i = 1 To Celda.FormatConditions.Count
 
    With Celda.FormatConditions(i)
     
    If .Type = xlCellValue Then
     
    Select Case .Operator
    Case xlBetween:      ReglaActiva = Celda.Value >= Evaluate(.Formula1) _
                         And Celda.Value <= Evaluate(.Formula2)
    Case xlNotBetween:   ReglaActiva = Celda.Value <= Evaluate(.Formula1) _
                         Or Celda.Value >= Evaluate(.Formula2)
    Case xlEqual:        ReglaActiva = Evaluate(.Formula1) = Celda.Value
    Case xlNotEqual:     ReglaActiva = Evaluate(.Formula1) <> Celda.Value
    Case xlGreater:      ReglaActiva = Celda.Value > Evaluate(.Formula1)
    Case xlLess:         ReglaActiva = Celda.Value < Evaluate(.Formula1)
    Case xlGreaterEqual: ReglaActiva = Celda.Value >= Evaluate(.Formula1)
    Case xlLessEqual:    ReglaActiva = Celda.Value <= Evaluate(.Formula1)
    End Select
         
    ElseIf .Type = xlExpression Then
     
        Application.ScreenUpdating = False
        Celda.Select
        ReglaActiva = Evaluate(.Formula1)
        Range(ActiveCell.Address).Select
        Application.ScreenUpdating = True
     
    End If
     
    If ReglaActiva Then
        COLORFC = .Interior.Color
        Exit Function
    End If
     
    End With
Next i
 
End Function

 

La primer instrucción nos crea la función secundaria COLORFC que nos permite identificar el formato condicional de la celda que será de referencia en el primer argumento de la función principal creada por la segunda instrucción. Esta otra función se denomina CONTARPORCOLORFC y la sintaxis es la siguiente:

=CONTARPORCOLORFC(A1;A1:A20)

Donde A1 es una celda dentro del rango total a analizar que contiene el color que requerimos contar definido por formato condicional (puede ser cualquier celda dentro del rango que contenga dicho color y formato), y A1:A20 es el rango total de celdas a analizar.

 

Te recomiendo ver el siguiente link con más videos de Macros útiles de Excel AQUÍ.

¿No sabés como instalar esta macro? ¡No te preocupes!  Aquí está la solución:

Salvo aclaración, todas las fórmulas y macros de este sitio están configuradas para aplicarse sobre la celda A1. Algunas fórmulas se encuentran encerradas entre llaves {} debido a que son fórmulas matriciales. Estas llaves no deben introducirse tecleándolas, sino que se generan automáticamente al aceptar la fórmula pulsando Control+Shift+Enter al mismo tiempo. Las fórmulas de este sitio son compatibles con versiones de Microsoft Excel® 2010 o superiores.