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:
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:
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:
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:
Ya estamos listos para trabajar con nuestra función en nuestro Libro de trabajo, si insertamos nuestra función sumabold vemos:
Con lo que obtenemos la suma de los valores en negrita dentro del rango definido:
sin olvidar que no hará falta actualizar manualmente nuestra hoja cuando cambiemos o se modifiquen los valores a sumar.
...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:
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:
Con lo que obtenemos la suma de los valores en negrita dentro del rango definido:
sin olvidar que no hará falta actualizar manualmente nuestra hoja cuando cambiemos o se modifiquen los valores a sumar.
Muchas gracias por el aporte!! esta excelente!!
ResponderEliminarMuy buen macro gracias
ResponderEliminarHola. No me actualiza automáticamente.
ResponderEliminarHola Daniel,
Eliminarte has asegurado de haber habilitado las macros???
Saludos cordiales