Página 1 de 1

[RESUELTO] Filtro con Macros alternativa bug de LibreOffice

Publicado: Vie Oct 23, 2015 6:58 pm
por elandriu
Hola a todos,
Tengo un problema con un filtro usando macros.
Quiero filtrar la columna 3 de un rango llamado "campo", el problema es que las celdas de la columna 3 a filtrar tiene una formula, ese resultado cuando resulta en "NO", no lo debe contener en el filtro.

He probado escribiendo "NO" manualmente (sin que sea la formula quien de el resultado y la macro que a continuación escribo, me funciona perfecto.

Mi pregunta es: ¿Cómo puedo hacer para que mi macro funcione cuando las celdas a filtrar contienen una fórmula como resultado a filtrar.

Un saludo y gracias.

Código: Seleccionar todo

Sub Filtro()
Dim oDoc As Object
Dim oRangosBD As Object
Dim sNombre As String
Dim oRBD As Object
Dim oDesFiltro As Object
Dim mCamposFiltro(0) As New com.sun.star.sheet.TableFilterField
	oDoc = ThisComponent
	oRangosBD = oDoc.DataBaseRanges()	
	sNombre = "campo"
	oRBD = oRangosBD.getByName( sNombre )
	oDesFiltro = oRBD.getFilterDescriptor()	
'El campo por el que queremos filtrar
	mCamposFiltro(0).Field = 2
'El tipo de comparación
	mCamposFiltro(0).Operator = com.sun.star.sheet.FilterOperator.NOT_EQUAL	
'Si es un número
	mCamposFiltro(0).IsNumeric = FALSE	
'El valor de comparación
	mCamposFiltro(0).StringValue = "NO"
'Le pasamos los campos
	oDesFiltro.FilterFields = mCamposFiltro
'Refrescamos el rango para ver el resultado del filtro
	oRBD.refresh()
	MsgBox "Listo"
End Sub

Re: Filtrar celdas que contiene una función usando Macros

Publicado: Vie Oct 23, 2015 7:59 pm
por fornelasa
Sugiero olvidarnos un poquito del codigo y enviar un archivo ejemplo aclarando aún más el problema.
Saludos, Federico.

Re: Filtrar celdas que contiene una función usando Macros

Publicado: Vie Oct 23, 2015 8:10 pm
por SLV-es
¿La fórmula contenida en las celdas devuelve una cadena de carácteres con "No"?
Revisa si devuelven "No " o " No"; es un error común.

Re: Filtrar celdas que contiene una función usando Macros

Publicado: Vie Oct 23, 2015 8:21 pm
por elandriu
Estoy creando un ejemplo para subir un archivo. En un rato lo subo.

La fórmula devuelve "NO", tal cual sin espacio y hasta en mayúsculas como intento filtrar. Cuando en lugar de que lo devuelva la fórmula, lo escribo manualmente al "NO", me funciona.

Re: Filtrar celdas que contiene una función usando Macros

Publicado: Vie Oct 23, 2015 9:25 pm
por elandriu
Lo he despejado del trabajo para solo quedarme con el filtro y me encuentro que si hago primero un filtro automático y le digo que muestre todo menos "NO" (sea función o valor), y luego pongo y saco tantas veces como quiero el filtro, me funciona.

Pero cuando abro el archivo y ejecuto la macro, no funciona.

Como les decía, una vez que hago el filtro manual y lo quito, el filtro de la macro y la limpieza de la macro, funcionan hasta que vuelvo a cerrar el archivo.

Espero que le encuentren el problema que no puedo encontrar la solución.

Un saludo

Re: Filtrar celdas que contiene una función usando Macros

Publicado: Vie Oct 23, 2015 11:50 pm
por fornelasa
En OpenOffice funciona correctamente, me atrevería a decir que es un bug de LibreOffice ya que en AOO funciona normal.
Si seleccionamos de forma manual "campo" en Datos <> Definir Intervalo ya funciona ..... pero no es lo normal.
Sugiero intentar por otro camino.
Saludos, Federico.

Re: Filtrar celdas que contiene una función usando Macros

Publicado: Sab Oct 24, 2015 12:30 am
por elandriu
Gracias fornelasa. Me podría haber vuelto loco!!!
Le estuve dando muchas vueltas. He cambiado varias veces el código para filtrar diferente pero siempre me encuentro con la misma traba. En definitiva siempre estoy necesitando filtrar.
Se te ocurre alguna idea para engañar y hacer algo automático para que enganche esa primera vez luego que se abre el documento?
Gracias!

Re: Filtrar celdas que contiene una función usando Macros

Publicado: Sab Oct 24, 2015 12:38 am
por fornelasa
ok dejame ver, ahorita voy de salida, en cuanta pueda lo checo ..... si es que alguien más de la comunidad no lo revisa.
Saludos, Federico.

Re: Filtrar celdas que contiene una función usando Macros

Publicado: Sab Oct 24, 2015 12:53 am
por elandriu
Gracias Federico y te mando mis deseos de que el huracán haga el menor daño posible.
Un saludo,
Andrés

Re: Filtrar celdas que contiene una función usando Macros

Publicado: Lun Oct 26, 2015 6:16 pm
por fornelasa
Veinte años despues ...... :lol:
Ante la falla (o posible Bug) de LibreOffice podriamos usar una macro como la mostrada en el siguiente archivo ejemplo:
Saludos, Federico.

Re: Filtrar celdas que contiene una función usando Macros

Publicado: Lun Oct 26, 2015 6:33 pm
por elandriu
Hola Federico,
Que buena solución, ahora lo voy a aplicar y utilizando la protección de celda "oculto", lo protejo y no lo muestro a quien vea la hoja.

Muchas gracias!!!