[RESUELTO] Filtro con macro - version 4.0.1 no funciona

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

[RESUELTO] Filtro con macro - version 4.0.1 no funciona

Notapor hectorczelada » Lun Jul 06, 2015 2:01 pm

hola, hice una macro en calc, que en libreoffice 4.4 funciona, pero en openoffice 4.0.1, no me funciona

lo que quiero es: un filtro para la columna A, que sean iguales a 1.

cuando lo aplico en openfficeoffice, me oculta todo el rango de filas, en mi ejemplo (de la fila 2 a 100), y no solo las filas que tienen un dato igual a 1.

el texto es de la macro:
Código: Seleccionar todo   Expandir vistaContraer vista
    sub filtra_data()

       Dim xRange as object
       Dim FilterDesc as Object
       Dim FilterFields(0) as new com.sun.star.sheet.TableFilterField
       

       xRange = thiscomponent.getcurrentcontroller.activesheet.getCellRangeByName("A2:A100")
       FilterDesc = xRange.createFilterDescriptor(true)
       
       FilterDesc.ContainsHeader = false
      FilterFields(0).Field = 0
      FilterFields(0).IsNumeric = true
      FilterFields(0).Operator = com.sun.star.sheet.FilterOperator.EQUAL
      FilterFields(0).StringValue = 1
       
       FilterDesc.SetFilterFields(FilterFields)
       
       xRange.Filter(FilterDesc)

    End Sub
Última edición por SLV-es el Mié Jul 08, 2015 12:35 pm, editado 2 veces en total
Razón: Insertar etiquetas [Code]
hectorczelada
 
Mensajes: 3
Registrado: Jue Nov 27, 2008 4:45 pm

Re: filtro con macro - version 4.0.1 no funciona

Notapor FJCC-ES » Lun Jul 06, 2015 3:04 pm

Si
Código: Seleccionar todo   Expandir vistaContraer vista
FilterFields(0).IsNumeric = true

tiene que usar
Código: Seleccionar todo   Expandir vistaContraer vista
FilterFields(0).NumericValue = 1


Código: Seleccionar todo   Expandir vistaContraer vista
sub filtra_data()

Dim xRange as object
Dim FilterDesc as Object
Dim FilterFields(0) as new com.sun.star.sheet.TableFilterField


xRange = thiscomponent.getcurrentcontroller.activesheet.getCellRangeByName("A2:A100")
FilterDesc = xRange.createFilterDescriptor(true)

FilterDesc.ContainsHeader = false
FilterFields(0).Field = 0
FilterFields(0).IsNumeric = true
FilterFields(0).Operator = com.sun.star.sheet.FilterOperator.EQUAL
'FilterFields(0).StringValue = 1
FilterFields(0).NumericValue = 1    'FJCC

FilterDesc.SetFilterFields(FilterFields)

xRange.Filter(FilterDesc)

End Sub


O puede usar FilterFields.isNumeric = FALSE y FilterFields.StringValue = "1"

Código: Seleccionar todo   Expandir vistaContraer vista
sub filtra_data_2()

Dim xRange as object
Dim FilterDesc as Object
Dim FilterFields(0) as new com.sun.star.sheet.TableFilterField


xRange = thiscomponent.getcurrentcontroller.activesheet.getCellRangeByName("A2:A100")
FilterDesc = xRange.createFilterDescriptor(true)
'mri FilterDesc

FilterDesc.ContainsHeader = false
FilterFields(0).Field = 0
FilterFields(0).IsNumeric = FALSE
FilterFields(0).Operator = com.sun.star.sheet.FilterOperator.EQUAL
FilterFields(0).StringValue = "1"


FilterDesc.SetFilterFields(FilterFields)

xRange.Filter(FilterDesc)

End Sub
FJCC-ES
 
Mensajes: 689
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: filtro con macro - version 4.0.1 no funciona

Notapor hectorczelada » Lun Jul 06, 2015 3:38 pm

gracias.

era una boludes, ahora tengo que ver en el otro graciass!!
hectorczelada
 
Mensajes: 3
Registrado: Jue Nov 27, 2008 4:45 pm


Volver a Macros y API UNO

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados