Obrigado pela ajuda, funcionou aqui. A macro ficou da seguinte forma:

Sub aplicaFiltro
   Dim oDoc As Object
   Dim oPlan As Object
   Dim oExt As Object
   Dim oDescFiltro As Variant
   Dim oCamposFiltro(3) As New com.sun.star.sheet.TableFilterField

   oDoc = ThisComponent
   oPlan = oDoc.getSheets().getByName("Planilha1")
   oExt = oPlan.getCellRangeByPosition(0,0,4,18)
'   define a estrutura TableFilterField

   oCamposFiltro(0).Field = 0
   oCamposFiltro(0).Operator = com.sun.star.sheet.FilterOperator.NOT_EMPTY
    oCamposFiltro(1).Field = 1
   oCamposFiltro(1).Operator = com.sun.star.sheet.FilterOperator.NOT_EMPTY
   oCamposFiltro(2).Field = 2
   oCamposFiltro(2).Operator = com.sun.star.sheet.FilterOperator.NOT_EMPTY
   oCamposFiltro(3).Field = 3
   oCamposFiltro(3).Operator = com.sun.star.sheet.FilterOperator.NOT_EMPTY

   oDescFiltro = oExt.createFilterDescriptor (True)
   oDescFiltro.setFilterFields (oCamposFiltro())
   oExt.filter (oDescFiltro)

end sub


Ulisses

On Mon, Oct 20, 2008 at 12:47 PM, Noelson Alves Duarte <
[EMAIL PROTECTED]> wrote:

> Olá,
>
> Defines um vetor (oCamposFiltro) com um elemento e usas este elemento como
> critério para o filtro. Resultado, filtra apenas a coluna C.
>
> --
> Noelson
>
> 2008/10/18, Ulisses <[EMAIL PROTECTED]>:
> >
> > Boa tarde,
> > estou seguindo este tutorial (
> http://geocities.yahoo.com.br/noelsonalves/)
> > disponibilizado pelo Noelson para ver se consigo filtrar linhas em uma
> > planilha de forma que só fiquem as linhas que estiverem totalemente
> > preenchidas. Consegui fazer o filtro funcionar, mas apenas se eu usar uma
> > coluna no filtro. A macro que uso segue abaixo:
> > Sub Filtro
> >    Dim oDoc As Object
> >    Dim oPlan As Object
> >    Dim oExt As Object
> >    Dim oDescFiltro As Variant
> >    Dim oCamposFiltro(0) As New com.sun.star.sheet.TableFilterField
> >
> >    oDoc = ThisComponent
> >    oPlan = oDoc.getSheets().getByName("Planilha1")
> >    oExt = oPlan.getCellRangeByPosition(0,0,2,12)
> > '   define a estrutura TableFilterField
> >    oCamposFiltro(0).Field = 0
> > '   oCamposFiltro(0).IsNumeric = False
> >    oCamposFiltro(0).Operator =
> com.sun.star.sheet.FilterOperator.NOT_EMPTY
> > '   oCamposFiltro(0).NumericValue = " "
> >    oCamposFiltro(0).Connection = com.sun.star.sheet.FilterConnection.AND
> >    oCamposFiltro(0).Field = 1
> > '   oCamposFiltro(0).IsNumeric = False
> >    oCamposFiltro(0).Operator =
> com.sun.star.sheet.FilterOperator.NOT_EMPTY
> > oCamposFiltro(0).Connection = com.sun.star.sheet.FilterConnection.AND
> >    oCamposFiltro(0).Field = 2
> > '   oCamposFiltro(0).IsNumeric = False
> >    oCamposFiltro(0).Operator =
> com.sun.star.sheet.FilterOperator.NOT_EMPTY
> > '   oCamposFiltro(0).NumericValue = " "
> >    ' cria o descritor do filtro vazio (True)
> >    oDescFiltro = oExt.createFilterDescriptor (True)
> >    ' define o campo de filtro
> >    oDescFiltro.setFilterFields (oCamposFiltro())
> >    ' aplica o filtro
> >    oExt.filter (oDescFiltro)
> >
> > end sub
> >
> > Acredito eu esteja usando de forma totalmente errada o Filtro AND. Alguém
> > tem alguma idéia de como fazer este filtro?
> >
> >
> > Ulisses
> >
>

Responder a