40 lines
1.8 KiB
HTML

<!-- 18 -->
<p>
Esta función al igual que la de sumar por color la hice por que en un trabajo llevaban un registro en excel donde la
clásificación era por dos categorías y
por colores del relleno de la celda, y a veces eran varios colores, como los colores eran una constante y el rango
era un rango variable pues lo mejor era hacer una
función en lugar de hacer siempre filtrados por cada color: <br><br>
En esta función para poder funcionar necesita que ingreses dos <a class="link" data-bs-toggle="modal"
data-bs-target="#parametro">parámetros</a>, el primer parámetro es la celda que
contiene el color que deseas obtener el conteo,
el segundo parámetro es el rango que contiene las celdas con los colores a contar, ejemplo: <br><br>
De la celda A1 a la celda A29 tenemos varios conceptos y varios colores pero nos interesa saber cuantas celdas
tienen el color verde de relleno, entonces
en la celda C1 colocamos el color verde (no importa si colocas texto en la celda solo valida el color de fondo), en
la celda D1 hacemos el llamado de la función
ingresando <b>=contarPorColor(C1,$A$1:$A$29)</b>.
</p>
<div class="img zoomable">
<img src="/static/source_imgs/excel/pst_4/1.png" alt="" style="height: 350px; width: auto;">
</div>
<p>
Te dejo el código de la <a class="link" data-bs-toggle="modal" data-bs-target="#udf">UDF</a> en caso de que quieras
usarla o modificarla:
</p>
<pre><i class="bi bi-copy"> Copiar código</i>
<code class="code_lightMode">
Function contarPorColor(celda As Range, rango As Range) As Long
Application.Volatile
Dim conteo As Integer
Dim obj As Object
conteo = 0
For Each obj In rango
If obj.Interior.Color = celda.Interior.Color Then
conteo = conteo + 1
End If
Next obj
contarPorColor = conteo
End Function
</code></pre>