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
> >
>