Filtros avanzados en macros

Discute sobre la aplicación de hojas de cálculo
Responder
hmonroy
Mensajes: 2
Registrado: Mié Mar 11, 2009 6:26 pm

Filtros avanzados en macros

Mensaje por hmonroy »

Hola compañeros:

He intentado inútilmente correr una macro de la hoja de cálculo de M$Office en nuestro querido Calc 3.0. Se trata de un filtro avanzado. Y aunque ya contamos con Option VBASupport en el editor de basic, simplemente no corre.
He hecho filtros avanzados en Calc sin problema, pero cuando intento grabarlos en una macro, el código se escribe, pero no corre.
¿Alguien ha tenido éxito en algo parecido?
Saludos cordiales
Hmonroy
Avatar de Usuario
RGB-es
Mensajes: 4739
Registrado: Lun Nov 24, 2008 10:46 am
Contactar:

Re: Filtros avanzados en macros

Mensaje por RGB-es »

Nos vamos al foro de Calc.
No respondo mensajes privados sobre AOO/LibO, por favor, utilice el foro para sus preguntas

LibreOffice en openSUSE con escritorio Plasma
---
Existen dos clases de personas: las que dicen que existen dos clases de personas y las que no.
FJCC-ES
Mensajes: 873
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Filtros avanzados en macros

Mensaje por FJCC-ES »

Documentación en inglés
http://api.openoffice.org/docs/common/r ... Field.html
http://api.openoffice.org/docs/common/r ... rator.html

Código: Seleccionar todo

Dim Campos(3) as New com.sun.star.sheet.TableFilterField

Sheet = ThisComponent.Sheets.getByIndex(0)
Cellrange = Sheet.getCellRangeByPosition(1,0,3,15)  'B1:D16

FDescript = Cellrange.createFilterDescriptor(True)
REM  (Coumna B = 1 y Columna C = 7) o (Columna B = 2 y Columna C = 8)
Campos(0).Field = 0
Campos(0).Operator = com.sun.star.sheet.FilterOperator.EQUAL
Campos(0).IsNumeric = TRUE
Campos(0).NumericValue = 1   'Columna B = 1

Campos(1).Connection = com.sun.star.sheet.FilterConnection.AND
Campos(1).Field = 1
Campos(1).Operator = com.sun.star.sheet.FilterOperator.EQUAL
Campos(1).IsNumeric = TRUE
Campos(1).NumericValue = 7    'y columna C = 7

Campos(2).Connection = com.sun.star.sheet.FilterConnection.OR
Campos(2).Field = 0
Campos(2).Operator = com.sun.star.sheet.FilterOperator.EQUAL
Campos(2).IsNumeric = TRUE
Campos(2).NumericValue = 2   'o columna B = 2

Campos(3).Connection = com.sun.star.sheet.FilterConnection.AND
Campos(3).Field = 1
Campos(3).Operator = com.sun.star.sheet.FilterOperator.EQUAL
Campos(3).IsNumeric = TRUE
Campos(3).NumericValue = 8    'y columna C = 8 

FDescript.setFilterFields(Campos())
Cellrange.Filter(FDescript)
Responder