Sumar Celdas del mismo color

13/12/2005 - 17:38 por Principiante | Informe spam
Hola grupo.

Vaya por delante que tengo pocos conocimietos de EXCEL.

Necesito sumar unas celdas que tengan el mismo color de fondo. Busqué en
este grupo y encontré una función:

Function SumarColorFondo(rngCeldaColor As Range, rngRangoAsumar As
Range) As Double
Dim rngCelda As Range

For Each rngCelda In rngRangoAsumar
If rngCelda.Interior.ColorIndex = rngCeldaColor.Cells(1,
1).Interior.ColorIndex Then SumarColorFondo = SumarColorFondo + rngCelda
Next rngCelda

Set rngCelda = Nothing
End Function

Se supone que esta función suma las celdas que se le pasen como rango.

Una celda (H8 por ej) debe tener lo siguiente:

=SumarColorFondo(C2;A2:A11)

Siendo C2 una celda que posee el color que quiero sumar.
Siendo A2:A11 el rango de celdas de colores a sumar

El caso es que me sale esto: #¿NOMBRE?

Yo he puesto el código de la función VER CÓDIGO de la HOJA con los datos.

Que hago mal? Como hacerlo?

Gracias.

Principiante.

Preguntas similare

Leer las respuestas

#1 Hernandez, Roberto
13/12/2005 - 17:59 | Informe spam
Hola principiante.
El código de una función deberá ir pegado en un módulo, para que pueda ser
visto en todas las celdas de Excel, por decirlo de alguna manera.
Haz click derecho en el explorador de proyectos[mmm..., mira, con tu libro
de excel abierto presiona ALT + F11, y en la parte izquierda de la pantalla
aparecerá el explorador de proyectos].
Ok. click derecho insertar--> Módulo.

Corta el código de la hoja y pégalo en este módulo.
Deberá funcionar.

"Principiante" escribió en el mensaje
news:
Hola grupo.

Vaya por delante que tengo pocos conocimietos de EXCEL.

Necesito sumar unas celdas que tengan el mismo color de fondo. Busqué en
este grupo y encontré una función:

Function SumarColorFondo(rngCeldaColor As Range, rngRangoAsumar As Range)
As Double
Dim rngCelda As Range

For Each rngCelda In rngRangoAsumar
If rngCelda.Interior.ColorIndex = rngCeldaColor.Cells(1,
1).Interior.ColorIndex Then SumarColorFondo = SumarColorFondo + rngCelda
Next rngCelda

Set rngCelda = Nothing
End Function

Se supone que esta función suma las celdas que se le pasen como rango.

Una celda (H8 por ej) debe tener lo siguiente:

=SumarColorFondo(C2;A2:A11)

Siendo C2 una celda que posee el color que quiero sumar.
Siendo A2:A11 el rango de celdas de colores a sumar

El caso es que me sale esto: #¿NOMBRE?

Yo he puesto el código de la función VER CÓDIGO de la HOJA con los datos.

Que hago mal? Como hacerlo?

Gracias.

Principiante.
Respuesta Responder a este mensaje
#2 Principiante
14/12/2005 - 16:20 | Informe spam
Hola Roberto, gracias por tu ayuda pues ya funciona.

Yo pensaba que podía poner el código en la hoja correspondiente.

Por cierto, como hago o donde pulso para que cuando cambie el color de
la celda, se recalcule la celda de la suma? Hay algún botón de refresco?

Lo digo porque aunque cambie el color me toca modificar un valor de las
celdas que se van a sumar para que se recalcule.

Gracias de nuevo.

Principiante.

Hernandez, Roberto escribió:
Hola principiante.
El código de una función deberá ir pegado en un módulo, para que pueda ser
visto en todas las celdas de Excel, por decirlo de alguna manera.
Haz click derecho en el explorador de proyectos[mmm..., mira, con tu libro
de excel abierto presiona ALT + F11, y en la parte izquierda de la pantalla
aparecerá el explorador de proyectos].
Ok. click derecho insertar--> Módulo.

Corta el código de la hoja y pégalo en este módulo.
Deberá funcionar.

"Principiante" escribió en el mensaje
news:

Hola grupo.

Vaya por delante que tengo pocos conocimietos de EXCEL.

Necesito sumar unas celdas que tengan el mismo color de fondo. Busqué en
este grupo y encontré una función:

Function SumarColorFondo(rngCeldaColor As Range, rngRangoAsumar As Range)
As Double
Dim rngCelda As Range

For Each rngCelda In rngRangoAsumar
If rngCelda.Interior.ColorIndex = rngCeldaColor.Cells(1,
1).Interior.ColorIndex Then SumarColorFondo = SumarColorFondo + rngCelda
Next rngCelda

Set rngCelda = Nothing
End Function

Se supone que esta función suma las celdas que se le pasen como rango.

Una celda (H8 por ej) debe tener lo siguiente:

=SumarColorFondo(C2;A2:A11)

Siendo C2 una celda que posee el color que quiero sumar.
Siendo A2:A11 el rango de celdas de colores a sumar

El caso es que me sale esto: #¿NOMBRE?

Yo he puesto el código de la función VER CÓDIGO de la HOJA con los datos.

Que hago mal? Como hacerlo?

Gracias.

Principiante.





Respuesta Responder a este mensaje
#3 Hernandez, Roberto
14/12/2005 - 17:14 | Informe spam
Quizás podrías mandar la fórmula por código a la celda deseada, aprovechando
el evento worksheet_Change( )
De ese modo en cada cambio en la hoja la función se actualizaría

Ejemplo:

'**************************************************************
Private Sub worksheet_change(ByVal target As Range)
'Aqui pon el rango en donde esperas el cambio
'en el ejemplo supongo que los cambios de color los haces en
'la columna B
If (Intersect(Target, Range("B:B")) Is Nothing) Then Exit Sub
'Suponiendo que es en A1 donde tienes la fórmula:
Worksheets("Hoja1").Range("A1").Formula = "=SumarColorFondo(C2;A2:A11)"
End Sub
'**************************************************************
Este código si va en la hoja...
Ten cuidado con los saltos de línea

Roberto

"Principiante" escribió en el mensaje
news:
Hola Roberto, gracias por tu ayuda pues ya funciona.

Yo pensaba que podía poner el código en la hoja correspondiente.

Por cierto, como hago o donde pulso para que cuando cambie el color de la
celda, se recalcule la celda de la suma? Hay algún botón de refresco?

Lo digo porque aunque cambie el color me toca modificar un valor de las
celdas que se van a sumar para que se recalcule.

Gracias de nuevo.

Principiante.

Hernandez, Roberto escribió:
Hola principiante.
El código de una función deberá ir pegado en un módulo, para que pueda
ser visto en todas las celdas de Excel, por decirlo de alguna manera.
Haz click derecho en el explorador de proyectos[mmm..., mira, con tu
libro de excel abierto presiona ALT + F11, y en la parte izquierda de la
pantalla aparecerá el explorador de proyectos].
Ok. click derecho insertar--> Módulo.

Corta el código de la hoja y pégalo en este módulo.
Deberá funcionar.

"Principiante" escribió en el mensaje
news:

Hola grupo.

Vaya por delante que tengo pocos conocimietos de EXCEL.

Necesito sumar unas celdas que tengan el mismo color de fondo. Busqué en
este grupo y encontré una función:

Function SumarColorFondo(rngCeldaColor As Range, rngRangoAsumar As Range)
As Double
Dim rngCelda As Range

For Each rngCelda In rngRangoAsumar
If rngCelda.Interior.ColorIndex = rngCeldaColor.Cells(1,
1).Interior.ColorIndex Then SumarColorFondo = SumarColorFondo + rngCelda
Next rngCelda

Set rngCelda = Nothing
End Function

Se supone que esta función suma las celdas que se le pasen como rango.

Una celda (H8 por ej) debe tener lo siguiente:

=SumarColorFondo(C2;A2:A11)

Siendo C2 una celda que posee el color que quiero sumar.
Siendo A2:A11 el rango de celdas de colores a sumar

El caso es que me sale esto: #¿NOMBRE?

Yo he puesto el código de la función VER CÓDIGO de la HOJA con los datos.

Que hago mal? Como hacerlo?

Gracias.

Principiante.




Respuesta Responder a este mensaje
#4 KL
15/12/2005 - 21:42 | Informe spam
Hola Principiante,

Te recomiendo que heches un vistazo a esto:

http://www.cpearson.com/excel/colors.htm

Saludos,
KL


"Principiante" wrote in message news:
Hola de nuevo Ricardo.

Intento hacer lo que me dices pero nada. Te adjunto el ejemplo en un ZIP
para que lo veas si puedes.

Se que el código va en la hoja pues es un evento al cambiar el
WorkSheet. Las funciones tenían que ir en un módulo como en ACCESS pero
yo en ACCESS tambien las declaro en un FORM y las puedo invocar.

Gracias de nuevo.

Principiante.

Hernandez, Roberto escribió:
Quizás podrías mandar la fórmula por código a la celda deseada, aprovechando
el evento worksheet_Change( )
De ese modo en cada cambio en la hoja la función se actualizaría

Ejemplo:

'**************************************************************
Private Sub worksheet_change(ByVal target As Range)
'Aqui pon el rango en donde esperas el cambio
'en el ejemplo supongo que los cambios de color los haces en
'la columna B
If (Intersect(Target, Range("B:B")) Is Nothing) Then Exit Sub
'Suponiendo que es en A1 donde tienes la fórmula:
Worksheets("Hoja1").Range("A1").Formula = "=SumarColorFondo(C2;A2:A11)"
End Sub
'**************************************************************
Este código si va en la hoja...
Ten cuidado con los saltos de línea

Roberto

"Principiante" escribió en el mensaje
news:

Hola Roberto, gracias por tu ayuda pues ya funciona.

Yo pensaba que podía poner el código en la hoja correspondiente.

Por cierto, como hago o donde pulso para que cuando cambie el color de la
celda, se recalcule la celda de la suma? Hay algún botón de refresco?

Lo digo porque aunque cambie el color me toca modificar un valor de las
celdas que se van a sumar para que se recalcule.

Gracias de nuevo.

Principiante.

Hernandez, Roberto escribió:

Hola principiante.
El código de una función deberá ir pegado en un módulo, para que pueda
ser visto en todas las celdas de Excel, por decirlo de alguna manera.
Haz click derecho en el explorador de proyectos[mmm..., mira, con tu
libro de excel abierto presiona ALT + F11, y en la parte izquierda de la
pantalla aparecerá el explorador de proyectos].
Ok. click derecho insertar--> Módulo.

Corta el código de la hoja y pégalo en este módulo.
Deberá funcionar.

"Principiante" escribió en el mensaje
news:


Hola grupo.

Vaya por delante que tengo pocos conocimietos de EXCEL.

Necesito sumar unas celdas que tengan el mismo color de fondo. Busqué en
este grupo y encontré una función:

Function SumarColorFondo(rngCeldaColor As Range, rngRangoAsumar As Range)
As Double
Dim rngCelda As Range

For Each rngCelda In rngRangoAsumar
If rngCelda.Interior.ColorIndex = rngCeldaColor.Cells(1,
1).Interior.ColorIndex Then SumarColorFondo = SumarColorFondo + rngCelda
Next rngCelda

Set rngCelda = Nothing
End Function

Se supone que esta función suma las celdas que se le pasen como rango.

Una celda (H8 por ej) debe tener lo siguiente:

=SumarColorFondo(C2;A2:A11)

Siendo C2 una celda que posee el color que quiero sumar.
Siendo A2:A11 el rango de celdas de colores a sumar

El caso es que me sale esto: #¿NOMBRE?

Yo he puesto el código de la función VER CÓDIGO de la HOJA con los datos.

Que hago mal? Como hacerlo?

Gracias.

Principiante.












Respuesta Responder a este mensaje
#5 Principiante
16/12/2005 - 16:20 | Informe spam
Gracias KL. Lo probaré y si no me aclaro pues lo comentaré por aqui.

Principiante.

KL escribió:
Hola Principiante,

Te recomiendo que heches un vistazo a esto:

http://www.cpearson.com/excel/colors.htm

Saludos,
KL


"Principiante" wrote in message
news:

Hola de nuevo Ricardo.

Intento hacer lo que me dices pero nada. Te adjunto el ejemplo en un ZIP
para que lo veas si puedes.

Se que el código va en la hoja pues es un evento al cambiar el
WorkSheet. Las funciones tenían que ir en un módulo como en ACCESS pero
yo en ACCESS tambien las declaro en un FORM y las puedo invocar.

Gracias de nuevo.

Principiante.

Hernandez, Roberto escribió:

Quizás podrías mandar la fórmula por código a la celda deseada,
aprovechando
el evento worksheet_Change( )
De ese modo en cada cambio en la hoja la función se actualizaría

Ejemplo:

'**************************************************************
Private Sub worksheet_change(ByVal target As Range)
'Aqui pon el rango en donde esperas el cambio
'en el ejemplo supongo que los cambios de color los haces en
'la columna B
If (Intersect(Target, Range("B:B")) Is Nothing) Then Exit Sub
'Suponiendo que es en A1 donde tienes la fórmula:
Worksheets("Hoja1").Range("A1").Formula = "=SumarColorFondo(C2;A2:A11)"
End Sub
'**************************************************************
Este código si va en la hoja...
Ten cuidado con los saltos de línea

Roberto

"Principiante" escribió en el mensaje
news:

Hola Roberto, gracias por tu ayuda pues ya funciona.

Yo pensaba que podía poner el código en la hoja correspondiente.

Por cierto, como hago o donde pulso para que cuando cambie el color
de la
celda, se recalcule la celda de la suma? Hay algún botón de refresco?

Lo digo porque aunque cambie el color me toca modificar un valor de las
celdas que se van a sumar para que se recalcule.

Gracias de nuevo.

Principiante.

Hernandez, Roberto escribió:

Hola principiante.
El código de una función deberá ir pegado en un módulo, para que pueda
ser visto en todas las celdas de Excel, por decirlo de alguna manera.
Haz click derecho en el explorador de proyectos[mmm..., mira, con tu
libro de excel abierto presiona ALT + F11, y en la parte izquierda
de la
pantalla aparecerá el explorador de proyectos].
Ok. click derecho insertar--> Módulo.

Corta el código de la hoja y pégalo en este módulo.
Deberá funcionar.

"Principiante" escribió en el mensaje
news:


Hola grupo.

Vaya por delante que tengo pocos conocimietos de EXCEL.

Necesito sumar unas celdas que tengan el mismo color de fondo.
Busqué en
este grupo y encontré una función:

Function SumarColorFondo(rngCeldaColor As Range, rngRangoAsumar As
Range)
As Double
Dim rngCelda As Range

For Each rngCelda In rngRangoAsumar
If rngCelda.Interior.ColorIndex = rngCeldaColor.Cells(1,
1).Interior.ColorIndex Then SumarColorFondo = SumarColorFondo +
rngCelda
Next rngCelda

Set rngCelda = Nothing
End Function

Se supone que esta función suma las celdas que se le pasen como
rango.

Una celda (H8 por ej) debe tener lo siguiente:

=SumarColorFondo(C2;A2:A11)

Siendo C2 una celda que posee el color que quiero sumar.
Siendo A2:A11 el rango de celdas de colores a sumar

El caso es que me sale esto: #¿NOMBRE?

Yo he puesto el código de la función VER CÓDIGO de la HOJA con los
datos.

Que hago mal? Como hacerlo?

Gracias.

Principiante.
















Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida