Hola, quiero hacer un macro para filtrar filas con un filtro avanzado. Lo que pretendo es que al ejecutar la macro (con un botón), las filas se filtren con los criterios especificados en la tabla de condiciones. El problema es que creo la macro (Datos --> Filtro avanzado...), los datos se filtran, pero cuando vuelvo a ejecutar la macro es como si no se hubiese grabado y no funciona.
Gracias
Hacer un macro para filtrar filas
Hacer un macro para filtrar filas
OpenOffice 4.1.4 en Windows 10
Re: Hacer un macro para filtrar filas
Bienvenid@
Hay buenos hilos al respecto
Como
https://forum.openoffice.org/es/forum/v ... 531#p23333
o
https://forum.openoffice.org/es/forum/v ... 53&p=54524
Hay buenos hilos al respecto
Como
https://forum.openoffice.org/es/forum/v ... 531#p23333
o
https://forum.openoffice.org/es/forum/v ... 53&p=54524
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.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Re: Hacer un macro para filtrar filas
y por supuesto la completa documentación de este tema:
https://wiki.openoffice.org/wiki/ES/Man ... trar_datos
https://wiki.openoffice.org/wiki/ES/Man ... trar_datos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Re: Hacer un macro para filtrar filas
Gracias por la ayuda, me va un poco grande porque no entiendo mucho de esto. He podido apañarlo con un código del libro de Mauricio.
Ahora el problema es que no sé cómo hacer para que vuelvan a aparecer todos los registros.
Gracias de nuevo
Este es el código que he utilizado:
Ahora el problema es que no sé cómo hacer para que vuelvan a aparecer todos los registros.
Gracias de nuevo
Este es el código que he utilizado:
Código: Seleccionar todo
Sub Filtrar()
Dim oDoc As Object
Dim oRangosBD As Object
Dim oBaseDatos As Object
Dim oDestino As Object
Dim oCriterios As Object
Dim oDesFiltro As Object
oDoc = ThisComponent
oRangosBD = oDoc.DataBaseRanges()
'Nos aseguramos de que existen nuestros tres rangos
If oRangosBD.hasByName( "BaseDatos" ) And oRangosBD.hasByName( "Criterios" ) And oRangosBD.hasByName( "Destino" ) Then
'Obtenemos una referencia a los rangos origen
oBaseDatos = oRangosBD.getByName( "BaseDatos" ).ReferredCells()
oCriterios = oRangosBD.getByName( "Criterios" ).ReferredCells()
oDestino = oRangosBD.getByName( "Destino" ).ReferredCells.getCellByPosition( 0,0 ).getCellAddress()
'Obtenemos el descriptor del filtro del rango de criterios a partir del rango de datos
oDesFiltro = oCriterios.createFilterDescriptorByObject( oBaseDatos )
'Sin duplicados
oDesFiltro.SkipDuplicates = False
'Que pueda usar expresiones regulares
oDesFiltro.UseRegularExpressions = False
'Queremos el resultado en otra posición
oDesFiltro.CopyOutputData= False
'Le indicamos donde
'oDesFiltro.OutputPosition = oDestino
'El rango contiene encabezados de campos
oDesFiltro.ContainsHeader = True
'Filtramos con las opciones seleccionadas
oBaseDatos.filter( oDesFiltro )
Else
MsgBox "El rango de datos no existe"
End If
End sub
OpenOffice 4.1.4 en Windows 10
Re: Hacer un macro para filtrar filas
Tal vez...
Código: Seleccionar todo
Sub quitafiltros
MostrarFilas(oBaseDatos)
End Sub
Sub MostrarFilas(oRango)
'Mostra todas las filas = quitar filtros
oRango.getRows.Isvisible = True
End Sub
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.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Re: Hacer un macro para filtrar filas
Estos no me funcionan
Gracias de todas formas.
Gracias de todas formas.
OpenOffice 4.1.4 en Windows 10