viernes, 25 de noviembre de 2011

UDF para sumar valores en negrita en un rango de Excel.

A través de un correo reciente un lector del blog consultaba la posibilidad de Sumar sólo los valores en negrita para un rango de celdas dadas. La consulta decía:

...Quiero consultar sobre cómo puedo sumar los números que están en negrita de un rango de datos, ósea de una columna que contenga números en negrita y sin negrita, que me sume solamente los que están en negrita...


Por desgracia no existe una forma de realizar esta acción con las herramientas estándar de Excel, por lo que he decidido generar nuestra propia función personalizada que sume los valores correspondientes.
Supongamos el siguiente listado de valores de una Tabla:

UDF para sumar valores en negrita en un rango de Excel.


El objetivo es claro, desarrollar una función en Excel que sume, para un rango dado, los valores con un formato de negrita.

En un módulo del Editor de VBA insertaremos el siguiente código:

Public Function sumabold(Rng As Range)
Dim celda As Object
Application.Volatile ' opcional
'La función se actualizará cuando se efectúe un cálculo en alguna celda de la hoja
'en la que aparezca esta función.

For Each celda In Rng
    If celda.Font.Bold = True Then
    sumabold = sumabold + celda.Value
    End If
Next
sumabold = sumabold

End Function


Antes de volver a nuestra Hoja de cálculo, es importante para que nuestra función sumabold actualice ante cualquier cambio que haya en nuestra hoja, añadir al código de la 'Hoja1' (en nuestro caso) la siguiente instrucción:

Private Sub Worksheet_selectionchange(ByVal Target As Range)
'Para todos los libros abiertos, fuerza un cálculo completo de los datos
'y vuelve a establecer las dependencias
Application.CalculateFullRebuild
End Sub


Ya estamos listos para trabajar con nuestra función en nuestro Libro de trabajo, si insertamos nuestra función sumabold vemos:

UDF para sumar valores en negrita en un rango de Excel.


Con lo que obtenemos la suma de los valores en negrita dentro del rango definido:

UDF para sumar valores en negrita en un rango de Excel.


sin olvidar que no hará falta actualizar manualmente nuestra hoja cuando cambiemos o se modifiquen los valores a sumar.

4 comentarios:

  1. Muchas gracias por el aporte!! esta excelente!!

    ResponderEliminar
  2. Muy buen macro gracias

    ResponderEliminar
  3. Hola. No me actualiza automáticamente.

    ResponderEliminar
    Respuestas
    1. Hola Daniel,
      te has asegurado de haber habilitado las macros???

      Saludos cordiales

      Eliminar