[RESUELTO] Ocultar filas según condición

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...

[RESUELTO] Ocultar filas según condición

Notapor naves » Sab May 26, 2018 7:17 am

Hola a todos:

Compañeros solicito de su apoyo para resolver la siguiente situación:

Tengo la intención de ocultar las filas "que no se necesiten" de un formato que se imprime a cliente, con la finalidad de que con ello se desperdicie menos papel.

Hasta el momento esto es lo que he conseguido:

Mediante el siguiente código trato de que si las celdas dentro del rango A5:A103 estan "vacias" oculte la fila en cuestión.
Código: Seleccionar todo   Expandir vistaContraer vista
'OCULTAR FILAS VACIAS
Sub Ocultar
oSheet = ThisComponent.CurrentController.ActiveSheet
oCeldas = oSheet.getCellrangeByName("A5:A103")
oEmpty = oCeldas.queryEmptyCells(0)
If oEmpty.Count > 0 Then
   for i = 0 to oEmpty.Count - 1
      oRango = oEmpty.getByIndex(i)
      oFilas = oRango.getRows()
      oFilas.isVisible = FALSE
   next i
End If
End Sub


Las celdas de las columna A dentro del rango tienen la siguiente formula =SI($J7="","","solicitado"), haciendo con esto que estas celdas sirvan como referencia de si esta siendo solicitado el producto o no.

El problema es el siguiente, cuando ejecuto la macro para ocultar las filas funciona a medias
Imagen
Al ejecutar la macro me oculta las filas que en la primer columna estan "vacias" vacias, ya que si contienen formula como el caso de A6 y A7 no las oculta
Imagen

La cuestión es la siguiente:

¿Libreoffice toma a las celdas con formulas como celdas no "vacias"?

¿Si este es el caso, cómo puedo ocultar las filas que no cumplan la condición de tener solicitud de producto?

Adjunto archivo
Muchas gracias de antemano por su atención, saludos!!!
Adjuntos
MTOTAL.ods
(27.98 KiB) 134 veces
Última edición por naves el Lun May 28, 2018 3:11 am, editado 3 veces en total
Libreoffice 5.2 en Debian 9
naves
 
Mensajes: 9
Registrado: Lun May 14, 2018 5:13 am

Re: Ocultar filas según condición

Notapor mauricio » Sab May 26, 2018 4:26 pm

Si miras tu formula, la columna "real" de tu criterio para determinar si esta vacía, es la J, usa esta columna para la macro.

Saludos

P.D. Por favor, no escribas en solo mayúsculas los títulos de los temas
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5991
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Ocultar filas según condición

Notapor naves » Sab May 26, 2018 5:01 pm

Hola Mauricio:

Gracias por tu respuesta, sobre lo que me comentas así lo intente en primera instancia ya que es la columna J la que interesa, pero sucede lo mismo, ya que no toma las celdas con formula como "vacias" ( La celdas de la columna J contienen formula).

Imagen

Cree la columna A como apoyo para realizar el ocultamiento de filas, pero descubri con ello que es más bien que la macro no reconoce las celdas con formulas como "vacias".

Alguna solución que se les ocurra? para ocultar las filas que en la columna J no contengan valor?

P.D. Perdona lo de las mayusculas en el título.

Saludos!
Libreoffice 5.2 en Debian 9
naves
 
Mensajes: 9
Registrado: Lun May 14, 2018 5:13 am

Re: Ocultar filas según condición

Notapor mauricio » Sab May 26, 2018 6:19 pm

Utiliza entonces el método:
Código: Seleccionar todo   Expandir vistaContraer vista
.queryFormulaCells(2)

que consulta por el valor del resultado de la formula, esto sobre la columna J,mira la documentación:
https://wiki.openoffice.org/wiki/ES/Man ... especiales

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5991
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Ocultar filas según condición

Notapor naves » Lun May 28, 2018 3:10 am

Hola Mauricio:

Antes que nada una disculpa por la demora de mi contestación (2 pequeñuelas me ocupan de tiempo completo) y además agradecerte por tu respuesta, es la solución que andaba buscando, efectivamente oculta las filas que cumplen con la cóndición.

También gracias por enlace que me proporcionas es muy informativo, se me aclaro la duda sobre el valor "vacio" en las celdas de calc.

Que tengas muy buenas noches, saludos desde León Gto.
Libreoffice 5.2 en Debian 9
naves
 
Mensajes: 9
Registrado: Lun May 14, 2018 5:13 am

Re: Ocultar filas según condición

Notapor mauricio » Lun May 28, 2018 6:42 am

naves escribió:León Gto.

México?, bueno, no creo que haya otro en el mundo... :lol:

De vez en cuando viajo por Guanajuato, la hermosa tierra de mi madre, es bueno saber que hay usuarios de nuestro foro tan cerca...

Un abrazo
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5991
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: [RESUELTO] Ocultar filas según condición

Notapor Andrespy » Sab Abr 13, 2019 8:35 pm

Podrías compartir el resultado de tu solución en una planilla por favor?
Gracias.
He estado intentando ocultar celdas que contienen fórmulas pero el resultado que da esa formula es "no" (es decir texto que me da resultado de una formula sí)

no importa lo que diga el texto pero eso quiero ocultar. solo la celda que tenga una palabra no pero no entiendo mucho de macros.. he copiado el macros de la pregunta pero me oculta todas las celdas con formula no importando el resultado de la fórmula)

Desde ya muchas gracias por su ayuda.
agradecería un macro en el cual yo pueda definir la palabra a ocultar.
Andrespy
Versión: 6.1.3.2
Id. de compilación: 10(Build:2)
Subprocs. CPU: 1; SO: Linux 4.4; Repres. IU: predet.; VCL: gtk3_kde5;
Configuración regional: es-PY (es_PY.UTF-8); Calc: group threaded
Sistema operativo OpenSuse leap 42.3
Andrespy
 
Mensajes: 4
Registrado: Jue Sep 27, 2012 8:31 pm


Volver a Macros y API UNO

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 1 invitado