viernes, 25 de noviembre de 2011

Sumar los valores en negrita

Descargar el fichero: suma_negritas.xlsm

En Excel es frecuente trabajar introduciendo colores o negritas en las celdas que deseamos resaltar, y luego se presenta la tarea de tener que contar o sumar los valores de las celdas que hemos resaltado. En otra entrada de este blog ya dimos varios métodos para sumar las celdas según su color. Puedes verlo en este enlace:

Contar y Sumar los valores de las celdas según su Color

Ahora vamos a ver algún método para sumar las celdas en negrita.


Método 1

Vamos a crear una función personalizada que nos indique con VERDADERO o FALSO si una celda está en negrita o no.

La función se denomina negrita y es la siguiente.

Código:

Function negrita(ByVal Rng As Range) As Boolean
'Solo para una celda
If Rng.Count <> 1 Then negrita = CVErr(xlErrNum)
'Detecta si es negrita
If Rng.Font.Bold Then negrita = True
End Function

En la celda F5 calculamos la suma por el método 1.

=SUMAPRODUCTO(B4:B12;--(C4:C12))

Utilizamos la función SUMAPRODUCTO. El par de signos menos sirven para convertir a numéricos (ceros y unos) los valores de la columna C.

Este método no es perfecto ya que si se cambia una negrita, añadiédola o quitándola, no se recalcula automáticamente hasta que no se actualicen las fórmulas de la columna C.

Método 2

El método 2 calcula directamente la suma de las celdas que están en negrita, sin necesidad de utilizar una columna auxiliar. Pare ello hemos diseñado una nueva función personalizada que se denomina suma_negritas.

Código:

Function suma_negritas(ByVal Rng As Range) As Double
Dim celda As Range
For Each celda In Rng
  If celda.Font.Bold Then
    suma_negritas = suma_negritas + celda.Value
  End If
Next
End Function
Esta fórmula personalizada calcula la suma de las celdas que se indiquen en el rango, y siempre que estén en negrita.

Si añadimos una negrita, o bien la quitamos, la suma no se actualiza automaticamente y debemos pulsar F9, que es la tecla de recálculo manual, o bien escribir algo en alguna celda cualquiera de la hoja.

Contar las negritas

Proponemos al lector que diseñe una función que cuente los valores que se encuentran en negrita, dentro de un rango dado. Por ejemplo, se podría llamar cuenta_negritas.

Y, ¿qué tal una función que calcule el máximo, pero únicamente de las celdas en negrita?. Se podría llamar max_negritas.

6 comentarios:

  1. gran ayuda nos dan en esta pagina pero me gustaria que al momento de explicar puedan establecer un razonamiento logico para los codigos de las macros por ejemplo.

    si detallamos END SUB.- estamos indicando que se termino la cadena de codigos

    GRACIAS POR LAS AYUDAS Y FELICIDADES

    ResponderEliminar
  2. Hola Adolfo, Tengo una nueva Pregunta,
    Al momento de la Impresion de una hoja de calculo de Excel Es posible Configurar para que el ORDEN de la impresion sea Horizontal.
    por Ejemplo:
    1 2 3 4
    5 6 7 8
    9 .. .. ..
    Espero ser claro.

    Gracias

    ResponderEliminar
  3. Simplemente genial! Te felicito , pero ante todo tu don para compartir tus conocimientos salvas a muchos de nosotros los legos a sobrevivir jaja.. Gracias de nuevo!

    ResponderEliminar
  4. buenas, como tengo que hacer para que cada vez que abra un nuevo excel se me queden guardadas todas las formulas en VBA que haya creado anteriormente?

    ResponderEliminar
    Respuestas
    1. Hola Juan.
      Las macros y fórmulas creadas con VBA se conservan para que estén disponibles siempre que abras un libro cuando son grabada en el libro PERSONAL.XLSB.
      Esto puedes verlo como se hace en el siguiente enlace.
      Libro PERSONAL
      Un saludo.

      Eliminar
  5. alguien me podria ayudar? como se introduce esos codigos al excel porfavor.

    ResponderEliminar