Private Sub Worksheet Change Excel
Estoy creando una planilla de Excel, en la cual necesito que me sume los valores de ciertas celdas que están coloreadas, es decir que tengo un excel con un montón de números y quiero que al colorea las celdas que elijo me sume sus valores, para eso yo no soy experta en Visual Basic ni nada menos, pero encontré en la web el siguiente código:
Function SumarUsandocolor(CeldaConColorASumar As Range, RangoaSumar As Range)
Cada vez que haya un cambio en la hoja, hace que la formula se recalcule
Application. Volatile
'Declaro una variable para almacenar el color de referencia
Dim ColorReferencia As Integer
'Declaro una variable para almacenar la celda actual de un rango a sumar
Dim CeldaEnRango As Range
'Inicializamos la variable que contiene el color de referencia
'con el valor del color de la celda pasada como primer argumento
ColorReferencia = CeldaConColorASumar.Interior.ColorIndex
'Bucle recorriendo cada una de las celdas del rango a sumar
For Each CeldaEnRango In RangoaSumar
'Si el color de la celda de referencia coincide con el color
'de la celda actual entonces acumulo el valor de la celda
'para sumarlo
If ColorReferencia = CeldaEnRango.Interior.ColorIndex Then
SumarUsandocolor = SumarUsandocolor + CeldaEnRango.Value
End If
Next CeldaEnRango
End Function
Este código funciona bien, lo que no me hace es que no me actualiza al momento de re abrir el excel, o cambiar algun parámetro, por eso quería utilizar la función de arriba que está en el título, para que siempre se esté actualizando, busqué en varias preguntas que se han posteado aquí y lo que debería de hacer es poner este código dentro de Private Sub Worksheet Change y End Sub, pero la momento de compilarlo me dice que End Sub no está puesto, ya he intentado varias cosas y nada. ¿Está errado lo que estoy haciendo? Literalmente estoy haciendo lo siguiente:
Private Sub Worksheet_Change(ByVal Target As Range)
Function SumarUsandocolor(CeldaConColorASumar As Range, RangoaSumar As Range)
Cada vez que haya un cambio en la hoja, hace que la formula se recalcule
Application.Volatile
'Declaro una variable para almacenar el color de referencia
Dim ColorReferencia As Integer
'Declaro una variable para almacenar la celda actual de un rango a sumar
Dim CeldaEnRango As Range
'Inicializamos la variable que contiene el color de referencia
'con el valor del color de la celda pasada como primer argumento
ColorReferencia = CeldaConColorASumar.Interior.ColorIndex
'Bucle recorriendo cada una de las celdas del rango a sumar
For Each CeldaEnRango In RangoaSumar
'Si el color de la celda de referencia coincide con el color
'de la celda actual entonces acumulo el valor de la celda
'para sumarlo
If ColorReferencia = CeldaEnRango.Interior.ColorIndex Then
SumarUsandocolor = SumarUsandocolor + CeldaEnRango.Value
End If
Next CeldaEnRango
End Function
End Sub
Cualquier ayuda es bienvenida!