Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


OK!Obrigadoa todos que se
            empenharam, problema resolvido.Paulo FreitasEm 13/07/2013 09:06, sp24horas escreveu:
Ol!Segue um exemplo para vocadaptar.
'
********************************************************************************************************************
' MACRO DE SELEO, SELECIONA TODAS AS LINHAS DA COLUNA
            "E" COM A STRING "CHINA"
' E COPIA PARA UMA NOVA PLANILHA, MANTENDO A PLANILHA
            ORIGINAL.
'
********************************************************************************************************************
Sub MyFilter()
Dim oSheet' Sheet that will contain the filter.
Dim oRange' O rangethat will aplicar the
            filter.
Dim oFilterDesc' Filter descriptor.
Dim oFields(0) As New
            com.sun.star.sheet.TableFilterField
Dim x As New com.sun.star.table.CellAddress
' estou aplicando o filtrona segunda planilha, a
            contagem inicia do zero - quea primeira.
oSheet = ThisComponent.getSheets().getByIndex(1)
oRange = oSheet.getCellRangeByName("A1:X1642")


REM If argument is True, creates an empty filter
REM descriptor. If argument is False, create a
REM descriptor with the previous settings.
oFilterDesc = oSheet.createFilterDescriptor(True)


With oFields(0)
REM I could use the Connection property to indicate
REM how to connect to the previous field. This is
REM the first field so this is not required.
'.Connection =
            com.sun.star.sheet.FilterConnection.AND
'.Connection = com.sun.star.sheet.FilterConnection.OR


REM The Field property is the zero based column
REM number to filter. If you have the cell, you
REM can use .Field = oCell.CellAddress.Column.
.Field = 4' SELECIONA a coluna E


REM Compare using a numeric or a string?
.IsNumeric = False


REM The NumericValue property is used
REM because .IsNumeric = True from above.
REM .NumericValue = 80


REM If IsNumeric was False, then the
REM StringValue property would be used.
' .StringValue = "T(""""China"""")"'T("China")
.StringValue = "China"
'msgbox oFields(0).Stringvalue


REM Valid operators include EMPTY, NOT_EMPTY, EQUAL,
REM NOT_EQUAL, GREATER, GREATER_EQUAL, LESS,
REM LESS_EQUAL, TOP_VALUES, TOP_PERCENT,
REM BOTTOM_VALUES, and BOTTOM_PERCENT
.Operator = com.sun.star.sheet.FilterOperator.EQUAL
End With


REM The filter descriptor supports the following
REM properties: IsCaseSensitive, SkipDuplicates,
REM UseRegularExpressions,
REM SaveOutputPosition, Orientation, ContainsHeader,
REM CopyOutputData, OutputPosition, and MaxFieldCount


oFilterDesc.setFilterFields(oFields())
oFilterDesc.ContainsHeader = True
oFilterDesc.UseRegularExpressions = True
oFilterDesc.CopyOutputData = True
x.Sheet = 3
x.Column = 0
x.Row = 0
oFilterDesc.OutputPosition = x
oRange.filter(oFilterDesc)


End Sub




Abaixo, informao adicional:


REM PARA REMOVER UM FILTRO


Sub RemoveSheetFilter()
Dim oSheet' Sheet to filter.
Dim oFilterDesc' Filter descriptor.


oSheet = ThisComponent.getSheets().getByIndex(1)
oFilterDesc = oSheet.createFilterDescriptor(True)
oSheet.filter(oFilterDesc)
End Sub




Boa sorte!


Em 12 de julho de 2013 09:01, Rogerio
          Luz Coelholuz.rogerio@gmail.comescreveu:Coloque o
            macro no corpo da mensagem ou melhor ainda use um lugar ondepodemos baix-lo (Google 
Drive, Dropbox).Tambm nos diga qual seu sistema operacional e verso do
            LibreOffice. E aextenso do arquivo que quer usar (.ods , .doc, etc)Nos descreva (passo 
a passo de preferncia) o que DESEJA
            realizar e depoisnos diga o que jconseguiu.AbraosR.Em 11 de julho de 2013 08:15, 
Contabilidade - ABJJMcontabilidade_mjjm@terra.com.brescreveu:Senhores,Apos algumas leituras em 
materiais
                apresentados, aproveitei oproprio exemplo do Guia Calc Cap. 13, que
                e justamente a macroque necessito, porem ao aplica-la em
                minha planilha nao estouobtendo o resultado desejavel,
                vejamos:Ela executa ate certoponto corretamente, ou seja ela filtraos dados 
desejados porem nao copia os
                dados filtrados para umaoutra area que e o meu desejo.Tenho uma
                planilha onde:-os dadosa serem filtrados estao "A1:w1350" (area
                romeda"DADOS_DE_FILTRO")-criterios de filtro"A1352:w1353" (area
                romeda"CRITERIOS_DE_FILTRO")- copiarresultado para "A1360" (area
                nomeda"DADOS_FILTRADOS")Alguem poderia meajudar ou encaminhar para algum Forum, 
poissou novo em programacao e nao estou
                conseguindo resolver oproblema, abaixo segue a Macro para
                apreciacao.PauloFreitasSubUsandoFiltroAvancado()DimoSheet'Umaplanilhade um documento
                Calc.DimoRanges'PropriedadesNamedRanges.DimoCritRange'Intervaloque contm o critrios 
de
                filtragem.DimoDataRange'intervaloque contm os dados a serem
                filtrados.DimoFiltDesc'Definiesdo filtro.REMIntervaloque contm 
oscritriosoSheet=ThisComponent.getSheets().getByIndex(1)oRanges=ThisComponent.NamedRangesoRange=oRanges.getByName("CRITERIO_DE_FILTRO")oCritRange=oRange.getReferredCells()REMPode-se
 tambm obter ointervalo contendoREM o critrio de
                filtragem apartir de um nome de intervalo.REM
                oRanges =ThisComponent.NamedRangesREM oRange
                =oRanges.getByName("MediaMenor80")REM oCritRange =oRange.getReferredCells()REM Os
                dados que 
serofiltradosoSheet=ThisComponent.getSheets().getByIndex(1)oDataRange=oSheet.getCellRangeByName("DADOS_DE_FILTRO")oFiltDesc=oCritRange.createFilterDescriptorByObject(oDataRange)oDataRange.filter(oFiltDesc)REMCopia
 o resultado para umlocal diferente do localoriginal.oFiltDesc.CopyOutputData=TrueREM Coluna B,
                linha 4 (lembre-se,comea em 0)REM Cria CellAddress e
                configuraisto para a 
planilha3,DimxAsNewcom.sun.star.table.CellAddressx.Sheet=1x.Column=0x.Row=1355oFiltDesc.OutputPosition=xEndSub!--@page
 { margin: 2cm }P { margin-bottom: 0.21cm }--Paulo Freitas--Vocestrecebendo e-mails da 
listausuarios@pt-br.libreoffice.org# Informaes sobre os comandos disponveis (em
                ingls):mande e-mail vazio parausuarios+unsubscribe@pt-br.libreoffice.org# Cancelar 
sua assinatura: mande e-mail vazio para:usuarios+unsubscribe@pt-br.libreoffice.org# Arquivo de 
mensagens:http://listarchives.libreoffice.org/pt-br/usuarios/--Vocestrecebendo e-mails da 
listausuarios@pt-br.libreoffice.org# Informaes sobre os comandos disponveis (em ingls):mande e-mail 
vazio parausuarios+unsubscribe@pt-br.libreoffice.org# Cancelar sua assinatura: mande e-mail vazio 
para:usuarios+unsubscribe@pt-br.libreoffice.org# Arquivo de 
mensagens:http://listarchives.libreoffice.org/pt-br/usuarios/




-- 
Você está recebendo e-mails da lista usuarios@pt-br.libreoffice.org
# Informações sobre os comandos disponíveis (em inglês):
  mande e-mail vazio para usuarios+unsubscribe@pt-br.libreoffice.org
# Cancelar sua assinatura: mande e-mail vazio para:
  usuarios+unsubscribe@pt-br.libreoffice.org
# Arquivo de mensagens: http://listarchives.libreoffice.org/pt-br/usuarios/

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.