Macros/Calc/ba030/es
TDF LibreOffice Document Liberation Project Blogs comunitarios Weblate Nextcloud Redmine Ask LibreOffice Donar
Resumen
Esta página proporciona un procedimiento de LibreOffice Basic LibreOffice que copia el resultado de un filtro avanzado a una ubicación distinta. Es un ejemplo extraído del Capítulo 13 ("Calc como base de datos") de la guía de Calc 7.0.
Descripción
Los resultados de un filtro avanzado se pueden reflejar en una posición diferente utilizando la propiedad OutputPosition. La copia/extración de los resultados de esta manera elimina la necesidad de Calc para ocultar filas que no coinciden con los criterios de búsqueda, lo que normalmente haría si filtra in situ.
La siguiente macro demuestra cómo copiar los resultados del filtro a una ubicación diferente. Tenga en cuenta que el descriptor del filtro debe modificarse antes de aplicar esta configuración del filtro.
Para demostrar el funcionamiento de la macro, se ha modificado el código de AdvancedRangeFilter en la página Crear un filtro avanzado insertando el siguiente código, justo antes de que la llamada al método Filter.
El documento de Calc para descarga, contiene la versión modificada de la macro AdvancedRangeFilter y utiliza los mismos intervalos de datos y de criterios de clasificación. Los resultados filtrados se colocan a partir de la celda B13 de la Hoja1.
Código
REM Copia los datos de salida del filtro en otro lugar.
oFiltDesc.CopyOutputData = True
REM Crear una dirección de celda y establecerla para la hoja1
REM Columna B, Fila 13 (recureda, empieza a contar desde 0)
Dim outputCell As New com.sun.star.table.CellAddress
outputCell.Sheet = 0
outputCell.Column = 1
outputCell.Row = 12
oFiltDesc.OutputPosition = outputCell
Este documento de Calc contiene el código LibreOffice Basic.