Ejecutar suma de celdas coloreadas

27/10/2005 - 02:01 por Esteban Dido | Informe spam
Hola,
Estoy sumando celdas coloreadas con la macro que aparece en
http://www.excelesp.com/funcperso01.htm
recomendada por H.M. pero quisiera modificar el código para incluír un botón
que la ejecute únicamente cuando sea presionado en vez de que se actualice
sóla. Agradeceré un poco de ayuda.
ED
 

Leer las respuestas

#1 Héctor Miguel
27/10/2005 - 03:10 | Informe spam
hola, Esteban !

Estoy sumando celdas coloreadas con la macro que aparece en http://www.excelesp.com/funcperso01.htm
... pero quisiera modificar el codigo para incluir un boton que la ejecute unicamente cuando sea presionado [...]



considerando que se trata de una FUNCION -personalizada- para utilizarse 'directamente' en las hojas de calculo...
[creo que] no tendria sentido 'obligarla/sujetarla/condicionarla/...' a un objeto que poco [o nada] tuviera que ver con las celdas -?-
[ademas] toma en cuenta que dicha funcion pudiera encontrarse NO en una sola... si no en varias celdas [y hojas del libro] :))

[supongo que] una alernativa +/- 'aceptable' seria agregar un parametro que 'suspenda' los re/calculos de la funcion ;)
[con lo cual] podrias incluso mantener varias funciones [misma hoja o en varias] con 'diferente' forma de auto-actualizacion :))

prueba con las siguientes modificaciones a la funcion para sumar celdas segun color 'de muestra'...
Function SumarColorFondo( _
CeldaColor As Range, _
RangoASumar As Range, _
Suspender As Range) As Double
If IsEmpty(Suspender) Then Exit Function
Dim Celda As Range
For Each Celda In RangoASumar
If Celda.Interior.ColorIndex = CeldaColor.Cells(1, 1).Interior.ColorIndex _
Then SumarColorFondo = SumarColorFondo + Celda
Next
Set Celda = Nothing
End Function

solo se ha agregado el parametro/argumento 'Suspender' que requiere de alguna celda 'adicional' a los otros argumentos [p.e.]
=SumarColorFondo(C1,A1:A10,D5) donde...
'C1' es la celda que tiene el color de fondo 'muestra'
'A1:A10' es el rango del que se desea sumar los valores cuyo color de celda sea igual al de la 'muestra' y...
'D5' es una celda 'adicional' que... si se deja 'vacia'... la funcion se suspende :))
=> toma nota que al suspender la funcion tampoco se 'sostiene' el valor anterior que se hubiera 'detectado' :-((
-> obtendras un rotundo y soberano cero -0- mientras la celda 'Suspender' se mantenga vacia :-((

saludos,
hector.

Preguntas similares