Actualizar celda en excel

Me preguntaba si me podrías ayudar con una duda que tengo de antemano muchas gracias. Tengo una función que me permite insertar una formula que me suma las celdas que están pintadas con un color determinado. Asta allí todo ba bien pero el problema es que cuando les quito el color me la sigue sumando ya que no actualiza y me toca aplicar f2 a una celda ydarle enter para que actualize y lo que me gustaría es que se pueda hace automático gracias
Este es el código
Function Sumarcolor(Celdacolor As Range, Rangosuma As Range) As Double Dim celda As Range For Each celda In Rangosuma If celda.Interior.ColorIndex = Celdacolor.Cells(1, 1).Interior.ColorIndex Then Sumarcolor = Sumarcolor + celda Next celda Set celda = Nothing End Function
esta la formula
=Sumarcolor(D1,A1:A15)

1 respuesta

Respuesta
1

En el código que me pasas no aparece "end if" pero supongo que lo tienes porque si no te estaría dando un error. Por otro lado, cuando inserto funciones prefiero usar una variable auxiliar que inicializo a cero o al valor que sea y que uso para los cálculos y luego solamente hago la asignación al final. Cuestión de manías pero en alguna ocasión me ha facilitado la vida encontrar errores.

Bien, yendo al grano. Lo que ocurre es que cambiar una celda de color no dispara el evento de recalculo de fórmulas, porque no hay un cambio en la hoja (excepto el cambio de color). Hay varias opciones para solventarlo, aunque puede que ninguna de tu gusto. La primera es programarte un evento tu mismo. Es algo complicado, tendrías que crear una clase que lo maneje... No te puedo ayudar con eso.

Otra opción es forzar el recalculo con el código:

Private Sub Worksheet_Change(ByVal Target As Range)
 Application.Calculate
End Sub

Este código va en la hoja, no en un módulo. El problema que tienes aquí es que tienes que hacer que la hoja cambie aunque sea escribir y borrar algo en una celda.

No creo que sea tu caso, pero no obstante mira en Opciones /Formulas por si tuvieras el recalculo como opción manual.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas