suma celdas con colores

¿Nuevo en Apache OpenOffice? ¿No sabe cómo comenzar o dónde hacer su pregunta? ¡Este es el lugar!
Reglas del Foro
Los moderadores podrían mover los temas creados aquí a un foro más apropiado.
Si usted publicó aquí y no encuentra el tema, puede buscar sus mensajes haciendo clic en la opción «Buscar sus mensajes» que se encuentra justo debajo de la cabecera de la página, junto al panel de control de usuario y al acceso a sus mensajes privados.

suma celdas con colores

Notapor laverda » Lun Feb 20, 2012 10:53 am

Hola amigos, soy usuario de OpenOffice desde hace bastante tiempo pero solamente se usar las funciones y formulas fundamentales.

Necesito sumar celdas de un color determinado, pero solamente las celdas no el contenido.
Despues de buscar por el foro no he conseguido encontrar nada que me pueda solucionar el problema.

¿Me podriais ayudar?

Muchas gracias.

Adjunto un archivo para que podais ver lo que necesito.

Las celdas de colores que he de sumar son las de la columna F
Adjuntos
suma celdas con colores.ods
(21.8 KiB) 732 veces
OpenOffice 3.3.0 en Windows Vista
laverda
 
Mensajes: 11
Registrado: Dom Feb 19, 2012 10:14 pm
Ubicación: Sevilla

Re: suma celdas con colores

Notapor mriosv » Lun Feb 20, 2012 3:46 pm

Mira en este hilo, que creo responde a la misma pregunta.
viewtopic.php?f=21&t=6360
Puedes usar "Subir adjunto" en Respuesta rápida - Editor Completo - Pestaña Subir adjunto
Apache OpenOffice 4, LibreOffice 5 (Win10x64)
mriosv
 
Mensajes: 2063
Registrado: Sab Dic 27, 2008 1:12 am
Ubicación: Galiza (España)

Re: suma celdas con colores

Notapor laverda » Lun Feb 20, 2012 6:17 pm

Ese hilo ya lo habia visto, pero no es lo que necesito, pues lo que quiero es que sume solo las celdas.

Ademas he abierto el archivo que trae como ejemplo y no consiguo que funcione.

De todas formas muchas gracias por contestar.
OpenOffice 3.3.0 en Windows Vista
laverda
 
Mensajes: 11
Registrado: Dom Feb 19, 2012 10:14 pm
Ubicación: Sevilla

Re: suma celdas con colores

Notapor mauricio » Lun Feb 20, 2012 7:03 pm

O sea... ¿lo que quieres es "contar" las celdas?
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
AOO 4.1 | LibO 5.3 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5389
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: México, D.F.

Re: suma celdas con colores

Notapor laverda » Lun Feb 20, 2012 7:38 pm

mauricio escribió:O sea... ¿lo que quieres es "contar" las celdas?


Efectivamente quiero contar las celdas que tengan un color determinado.
OpenOffice 3.3.0 en Windows Vista
laverda
 
Mensajes: 11
Registrado: Dom Feb 19, 2012 10:14 pm
Ubicación: Sevilla

Re: suma celdas con colores

Notapor xiseme » Lun Feb 20, 2012 8:09 pm

Ah! bueno, tratándose de contar podemos hacer una variación ...

Código: Seleccionar todo   Expandir vistaContraer vista
Function CONTARCOLOR(CeldaColor As String, RangoSuma As String) As Double
'Variante de la función SUMARCOLOR de FORNELASA pasando los parámetros como texto entre comillas.
'Ej  CONTARCOLOR("B5";"E2:F42")  No olvidar las comillas
Dim oRango As Object
Dim oCelda As Double
Dim c As Integer
Dim f As Integer
Dim oCuenta as Integer
oCuenta=0   'inicializamos variable
oRango = ThisComponent.CurrentController.ActiveSheet
oCelda = oRango.GetCellRangeByName(CeldaColor).CellBackColor
oRango = oRango.GetCellRangeByName(RangoSuma)
For c = 0 to oRango.Columns.Count - 1
   For f = 0 to oRango.Rows.Count - 1
      If    oRango.GetCellByPosition(c,f).CellBackColor = oCelda Then
         oCuenta = oCuenta + 1
      End If
   Next
Next
CONTARCOLOR = oCuenta
End Function


Claro que los criterios que se han usado para dar color a las celdas, también podrían emplearse para contarlas [o lo que sea]
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
xiseme
 
Mensajes: 1846
Registrado: Lun Nov 24, 2008 1:13 pm

Re: suma celdas con colores

Notapor laverda » Lun Feb 20, 2012 8:51 pm

xiseme escribió:Ah! bueno, tratándose de contar podemos hacer una variación ...

Código: Seleccionar todo   Expandir vistaContraer vista
Function CONTARCOLOR(CeldaColor As String, RangoSuma As String) As Double
'Variante de la función SUMARCOLOR de FORNELASA pasando los parámetros como texto entre comillas.
'Ej  CONTARCOLOR("B5";"E2:F42")  No olvidar las comillas
Dim oRango As Object
Dim oCelda As Double
Dim c As Integer
Dim f As Integer
Dim oCuenta as Integer
oCuenta=0   'inicializamos variable
oRango = ThisComponent.CurrentController.ActiveSheet
oCelda = oRango.GetCellRangeByName(CeldaColor).CellBackColor
oRango = oRango.GetCellRangeByName(RangoSuma)
For c = 0 to oRango.Columns.Count - 1
   For f = 0 to oRango.Rows.Count - 1
      If    oRango.GetCellByPosition(c,f).CellBackColor = oCelda Then
         oCuenta = oCuenta + 1
      End If
   Next
Next
CONTARCOLOR = oCuenta
End Function


Claro que los criterios que se han usado para dar color a las celdas, también podrían emplearse para contarlas [o lo que sea]



Supongo que la solucion que me indicas es una macro (mis conocimientos son bastante elementales pero tengo muchos deseos de aprender).

No se como introducir la macro en la hoja, ¿Me podrias indicar como se hace?

Muchas gracias
OpenOffice 3.3.0 en Windows Vista
laverda
 
Mensajes: 11
Registrado: Dom Feb 19, 2012 10:14 pm
Ubicación: Sevilla

Re: suma celdas con colores

Notapor xiseme » Mar Feb 21, 2012 12:55 am

Herramientas → Macros → Organizar macros → OOo
Aquí dos posibilidades

1.- Función disponible para todo AOO/LibO
Click en la flecha > de "Mis Macros" → Standard y en la parte derecha de la ventana "Nuevo" aparecerá "Module1" ponle el nombre a tu gusto. Aparecerá la ventana de Basic. Pega ahí el código anterior y guarda.

2.- Función estará disponible solo para el archivo NombreDeLaHoja
Click en la flecha > de NombreDeLaHoja → Standard ...igual que en lo anterior.

Esto pondrá a tu disposición la función CONTARCOLOR que tiene dos parámetros. El primero es la una dirección de celda con el color de fondo de referencia, el segundo la dirección del rango que queremos evaluar. Funcionará como cualquier otra función de AOO.
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
xiseme
 
Mensajes: 1846
Registrado: Lun Nov 24, 2008 1:13 pm

Re: suma celdas con colores

Notapor laverda » Mar Feb 21, 2012 5:10 pm

xiseme escribió:Herramientas → Macros → Organizar macros → OOo
Aquí dos posibilidades

1.- Función disponible para todo AOO/LibO
Click en la flecha > de "Mis Macros" → Standard y en la parte derecha de la ventana "Nuevo" aparecerá "Module1" ponle el nombre a tu gusto. Aparecerá la ventana de Basic. Pega ahí el código anterior y guarda.

2.- Función estará disponible solo para el archivo NombreDeLaHoja
Click en la flecha > de NombreDeLaHoja → Standard ...igual que en lo anterior.

Esto pondrá a tu disposición la función CONTARCOLOR que tiene dos parámetros. El primero es la una dirección de celda con el color de fondo de referencia, el segundo la dirección del rango que queremos evaluar. Funcionará como cualquier otra función de AOO.


Muchas gracias por tu respuesta.

He seguido las instrucciones del punto 1 y me sale un mensaje de error que dice:

Se ha producido un error de marco de programacion al ejecutar el comando Standard.Module1.CONTARCOLOR escrito en Basic.

Mensaje: wrong number of parameters!

No he conseguido adjuntar el mensaje pues no he conseguido reducir lo suficiente el archivo creado en formato png.

El punto 2 no soy capaz de aplicarlo.

Siento mucho ser tan torpe.
OpenOffice 3.3.0 en Windows Vista
laverda
 
Mensajes: 11
Registrado: Dom Feb 19, 2012 10:14 pm
Ubicación: Sevilla

Re: suma celdas con colores

Notapor RMG » Mar Feb 21, 2012 7:08 pm

Hola,

Mi sugerencia. Visita este enlace, te ayudará bastante en el tema de las macros.

viewtopic.php?f=50&t=1545#p4404

Saludos
OpenOffice 4.1.4 y LibreOffice 5.3.6 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
RMG
 
Mensajes: 3073
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: suma celdas con colores

Notapor xiseme » Mar Feb 21, 2012 11:02 pm

La función está sin pulir. Entre otras cosas habría que añadirle un control de errores.

Creo que para salir del paso, basta con ignorar los errores y recalcular con Ctrl+Shifft+F9. Ten en cuenta que si la fórmula está 200 veces en tu hoja seguramente habrá que ignorarlos 200 veces.

Esto te permitirá hacer un conteo de las celdas coloreadas por rangos, sin muchas más pretensiones.
No es idóneo; tan poco idóneo como manejar datos "por colores". En todo caso se debieran emplear las condiciones/criterios que se siguen para "colorear" plasmándolas en una o varias fórmulas.
Adjuntos
suma_celdas_con_colores.ods
(21.95 KiB) 428 veces
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
xiseme
 
Mensajes: 1846
Registrado: Lun Nov 24, 2008 1:13 pm

Re: suma celdas con colores

Notapor laverda » Mié Feb 22, 2012 9:12 am

RMG escribió:Hola,

Mi sugerencia. Visita este enlace, te ayudará bastante en el tema de las macros.

viewtopic.php?f=50&t=1545#p4404

Saludos


Muchas gracias, me dedicare unos dias a estudiar este manual a ver si soy capaz de aprender algo y sobre todo a aplicarlo.
OpenOffice 3.3.0 en Windows Vista
laverda
 
Mensajes: 11
Registrado: Dom Feb 19, 2012 10:14 pm
Ubicación: Sevilla

Re: suma celdas con colores

Notapor laverda » Mié Feb 22, 2012 9:16 am

xiseme escribió:La función está sin pulir. Entre otras cosas habría que añadirle un control de errores.

Creo que para salir del paso, basta con ignorar los errores y recalcular con Ctrl+Shifft+F9. Ten en cuenta que si la fórmula está 200 veces en tu hoja seguramente habrá que ignorarlos 200 veces.

Esto te permitirá hacer un conteo de las celdas coloreadas por rangos, sin muchas más pretensiones.
No es idóneo; tan poco idóneo como manejar datos "por colores". En todo caso se debieran emplear las condiciones/criterios que se siguen para "colorear" plasmándolas en una o varias fórmulas.


Muchas gracias, tal y como le digo a RMG, voy a dedicar unos dias a estudiar el manual de macros de Mauricio para despues volver a retomar el problema este.
OpenOffice 3.3.0 en Windows Vista
laverda
 
Mensajes: 11
Registrado: Dom Feb 19, 2012 10:14 pm
Ubicación: Sevilla

Re: suma celdas con colores

Notapor SLV-es » Sab Jun 16, 2012 8:36 pm

Si con las respuestas obtenidas consideras que se ha dado solución a tu consulta (aunque la solución obtenida sea que no la hay :(), por favor, marca el tema como resuelto.
Si no sabes cómo, por favor, lee Como marcar como [RESUELTO] un tema.
Gracias por participar en el foro y ayudar a que todo esté ordenado.
+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
Avatar de Usuario
SLV-es
 
Mensajes: 4873
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España

Re: suma celdas con colores

Notapor nuki » Vie Ago 26, 2016 12:39 pm

Saludos:

Mil gracias por la información compartida en este post. Lo acabo de utilizar y me funciona!!! :super: :super:

Sólo una cosa, la función no se actualiza automáticamente...

Para actualizarlas me suelo poner encima de la casilla y pulso F9, pero tengo diferentes celdas en diferentes hojas que irán cambiando constantemente y me es inviable ir de una en una actualizando.

Existe alguna forma de que actualice AUTOMATICAMENTE? :oops:


Gracias y un saludo
OpenOffice 3.1 en Windows Vista
nuki
 
Mensajes: 20
Registrado: Dom Jul 10, 2016 11:02 pm

Re: suma celdas con colores

Notapor PepeOooSevilla » Vie Ago 26, 2016 9:39 pm

Hola.

Puedes asignar una de las macros siguientes a la acción "Contenido cambiado" en "Hoja > Sucesos de hoja..." (o pinchando con el botón derecho sobre la pestaña de la hoja):

Código: Seleccionar todo   Expandir vistaContraer vista
Sub RecalcularTodo
   ThisComponent.calculateAll
End Sub

Sub RecalcularCeldasModificadas
   ThisComponent.calculate
End Sub

Saludos cordiales.
LibreOffice 5.3.7 (estable) en Windows 7 / 10
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
PepeOooSevilla
 
Mensajes: 741
Registrado: Sab Abr 04, 2009 6:10 pm
Ubicación: Sevilla (España)

Re: suma celdas con colores

Notapor nuki » Lun Ago 29, 2016 5:42 pm

Gracias PepeOooSevilla:

Funciona!! pero a veces me desactualiza los datos :shock: :shock: :shock:

Tan pronto me pone la suma correcta (p.e. 175), como que cuando me paso a otra hoja del mismo archivo que también tiene el mismo comando y vuelvo, dicho dato ha cambiado :crazy: :crazy: . El F9 lo soluciona, pero me deja mal cuerpo.

He puesto esta:

Código: Seleccionar todo   Expandir vistaContraer vista
Sub RecalcularTodo
   ThisComponent.calculateAll
End Sub



porque la otra, no me funcionaba del todo:

Código: Seleccionar todo   Expandir vistaContraer vista
Sub RecalcularTodo
   ThisComponent.calculateAll
End Sub


A qué puede ser debido?

Gracias por tu ayuda.

un saludo
OpenOffice 3.1 en Windows Vista
nuki
 
Mensajes: 20
Registrado: Dom Jul 10, 2016 11:02 pm

Re: suma celdas con colores

Notapor PepeOooSevilla » Mar Ago 30, 2016 11:56 am

Hola.
De acuerdo con la API de LibreOffice 5.2 (ver XCalculatable Interface Reference), el método calculate recalcula aquellas celdas cuyas celdas precedentes han cambiado, mientras que calculateAll recalcula todas las celdas, hayan cambiado o no (hablamos de celdas con fórmulas, obviamente).

    Celdas precedentes y celdas dependientes
    Celda precedente: Aquella celda que participa en el resultado de una fórmula. Un precedente directo es una celda que se utiliza directamente en la fórmula. Un precedente indirecto es una celda que es utilizada por otra celda que se utiliza directamente en la fórmula.
    Celda dependiente: Aquella cuyo resultado depende de otra celda. La celda también puede ser dependiente directo o indirecto.
    Ejemplo: Si C1 = A1 + B1, entonces A1 y B1 son celdas precedentes de C1, y C1 es una celda dependiente de A1 y B1.
pero a veces me desactualiza los datos

Así, sin ver un archivo de ejemplo al que le ocurra eso, no sé a qué puede ser debido.
Saludos cordiales.
LibreOffice 5.3.7 (estable) en Windows 7 / 10
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
PepeOooSevilla
 
Mensajes: 741
Registrado: Sab Abr 04, 2009 6:10 pm
Ubicación: Sevilla (España)

Re: suma celdas con colores

Notapor nuki » Lun Sep 05, 2016 8:52 am

Gracias por responder Pepe:

Mira, subo este archivo para que veas qué cosa más extraña ocurre. Según cambio cosas en una hoja del archivo en los otros se modifican las sumas :crazy: :crazy: :crazy:

Mil gracias por tu ayuda :super:
Adjuntos
2016-2017 CALENDARIO.ods
(31.8 KiB) 74 veces
OpenOffice 3.1 en Windows Vista
nuki
 
Mensajes: 20
Registrado: Dom Jul 10, 2016 11:02 pm

Re: suma celdas con colores

Notapor PepeOooSevilla » Mar Sep 06, 2016 12:19 pm

Hola.
nuki escribió: Según cambio cosas en una hoja del archivo en los otros se modifican las sumas

Efectivamente, porque la función hace referencia a la "hoja activa" (ThisComponent.CurrentController.ActiveSheet). Si el documento Calc tuviera sólo una hoja no habría ningún problema, pero como tiene varias hojas hay que tener en cuenta que la hoja activa siempre es una, por eso te modificaba todas las sumas de todas las hojas pero sumando sólo los rangos de la misma hoja que no es otra que la hoja activa.

He hecho varios cambios:

    > Long en lugar de Double
    > Un nuevo parámetro String para especificar la hoja donde tiene que sumar los rangos
    > He añadido la sentencia With que aumenta la velocidad de ejecución
    > He modificado el nombre de las hojas para que no haya confusión con las columnas
Adjunto archivo modificado y he aquí el nuevo código:

Código: Seleccionar todo   Expandir vistaContraer vista
Function CONTARCOLOR(CeldaColor As String, RangoSuma As String, NombreHoja As String) As Long
'Variante de la función SUMARCOLOR de FORNELASA pasando los parámetros como texto entre comillas.
'Ej  CONTARCOLOR("B5";"E2:F42";"NOMBRE_HOJA")  No olvidar las comillas
Dim oHoja As Object
Dim oRango As Object
Dim oCelda As Long
Dim c As Integer
Dim f As Integer
Dim oCuenta as Long

   oCuenta = 0   'inicializamos variable
   oHoja = ThisComponent.getSheets.getByName(NombreHoja)
   With oHoja
      oCelda = .GetCellRangeByName(CeldaColor).CellBackColor
      oRango = .GetCellRangeByName(RangoSuma)
      With oRango
         For c = 0 to .Columns.Count - 1
               For f = 0 to .Rows.Count - 1
                  If .GetCellByPosition(c,f).CellBackColor = oCelda Then
                     oCuenta = oCuenta + 1
                  End If
               Next
         Next
      End With   'oRango
   End With   'oHoja

   CONTARCOLOR = oCuenta
End Function

Saludos cordiales.
Adjuntos
2016_2017 CALENDARIO_v2.ods
LibreOffice Calc 5.2
(32.64 KiB) 73 veces
LibreOffice 5.3.7 (estable) en Windows 7 / 10
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
PepeOooSevilla
 
Mensajes: 741
Registrado: Sab Abr 04, 2009 6:10 pm
Ubicación: Sevilla (España)

Re: suma celdas con colores

Notapor nuki » Mar Sep 06, 2016 2:20 pm

Mil gracias Pepe!!

Lo miro luego tranquilamente y te cuento.

Una cosilla, veo que has cambiado el nombre de las hojas...si cambio los nombres, añado más hojas....no pasa nada, no? La macro sigue funcionando igual de bien, no? :?:

Gracias por tu ayuda!!
OpenOffice 3.1 en Windows Vista
nuki
 
Mensajes: 20
Registrado: Dom Jul 10, 2016 11:02 pm

Re: suma celdas con colores

Notapor PepeOooSevilla » Mar Sep 06, 2016 5:49 pm

Hola.
Puedes añadir hojas, cambiarles el nombre, etc., pero debes tener en cuenta que la llamada a la función es:

    =CONTARCOLOR("Z36";"U38:AA43";"NOMBRE-DE-LA-HOJA-NUEVA-O-NUEVO-NOMBRE-DE-LA-HOJA")
Siendo los tres parámetros cadenas de caracteres; el primero, una dirección de celda, el segundo, un rango de celdas y el tercero, el nombre de la hoja que contiene a esa función; todos entre comillas dobles.

Ahora bien, si, por ejemplo, pones en B5 (de cada hoja) el nombre de la hoja (sin comillas) entonces la llamada a la función se convierte en (ver adjunto 2016_2017 CALENDARIO_v3.ods):

    =CONTARCOLOR("Z36";"U38:AA43";$B$5)
El tercer parámetro sigue siendo una cadena de caracteres pero referenciado por medio de una dirección absoluta de celda. Dirección absoluta para que no actualice la dirección relativa de la celda si copias y pegas.

 Editado: El adjunto 2016_2017 CALENDARIO_v4_control_errores.ods contiene un control de errores en la función. En caso de error, por ejemplo, nombre de hoja desconocido, devuelve -1 para que compruebes los parámetros pasados a la función sin que te salte la ventana de error en Basic.
El nuevo código es:

Código: Seleccionar todo   Expandir vistaContraer vista
Function CONTARCOLOR(CeldaColor As String, RangoSuma As String, NombreHoja As String) As Long
'Variante de la función SUMARCOLOR de FORNELASA pasando los parámetros como texto entre comillas.
'Ej  CONTARCOLOR("B5";"E2:F42";"NOMBRE_HOJA")  No olvidar las comillas
Dim oHoja As Object
Dim oRango As Object
Dim oCelda As Long
Dim c As Integer
Dim f As Integer
Dim oCuenta as Long
   
   On Error Goto TRATAR_ERROR
   oCuenta = 0   'inicializamos variable
   oHoja = ThisComponent.getSheets.getByName(NombreHoja)
   With oHoja
      oCelda = .GetCellRangeByName(CeldaColor).CellBackColor
      oRango = .GetCellRangeByName(RangoSuma)
      With oRango
         For c = 0 to .Columns.Count - 1
               For f = 0 to .Rows.Count - 1
                  If .GetCellByPosition(c,f).CellBackColor = oCelda Then
                     oCuenta = oCuenta + 1
                  End If
               Next
         Next
      End With
   End With

   CONTARCOLOR = oCuenta
   Exit Function

TRATAR_ERROR:
   CONTARCOLOR = -1
End Function
 


Saludos cordiales.
Adjuntos
2016_2017 CALENDARIO_v4_control_errores.ods
LibreOffice Calc 5.2
(32.67 KiB) 92 veces
2016_2017 CALENDARIO_v3.ods
LibreOffice Calc 5.2
(32.63 KiB) 84 veces
LibreOffice 5.3.7 (estable) en Windows 7 / 10
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
PepeOooSevilla
 
Mensajes: 741
Registrado: Sab Abr 04, 2009 6:10 pm
Ubicación: Sevilla (España)

Re: suma celdas con colores

Notapor juan alberto » Dom Oct 09, 2016 10:40 pm

Muchas gracias por la información facilitada, para mi trabajo me es extremadamente útil. Seguiré aprendiendo :)
OpenOffice 3.1 en Windows Vista
Vive la vida que son dos días, al mal tiempo buena cara!
juan alberto
 
Mensajes: 1
Registrado: Dom Oct 09, 2016 10:36 pm


Volver a Principiantes

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados