Pergunte aqui
0

Filtro avançando via macro. Copiar a string não a fórmula?

perguntadas 2019-03-02 00:57:57 +0200

imagem do gravatar de mrkalvin

updated 2019-03-02 02:05:33 +0200

Arquivo de exemplo:

C:\fakepath\Sem título 152.ods

No arquivo exemplo em anexo na planilha "Dispensação", uso a macro aqui do forum pra executar Filtro avançando via macro.

Sub FiltroAvancado
    Dim oDoc As Object, oPlanAtiva As Object, oPlan2 As Object
    Dim oIntervalo As Object, oCriterios As Object
    Dim oDestino As Object, oFiltro As Object

   oDoc = ThisComponent
   oPlanAtiva = oDoc.CurrentController.ActiveSheet
   oPlan2 = oDoc.Sheets.getByName("Cadastro")

    If oPlanAtiva.getCellRangeByName("a2").getstring() <> "" Then
       oIntervalo = oPlan2.getCellRangeByName("A1:c49")
       oCriterios = oPlanAtiva.getCellRangeByName("a1:a2")
       oDestino = oPlanAtiva.getCellRangeByName("a7")

       oFiltro = oCriterios.createFilterDescriptorByObject(oIntervalo)
       oFiltro.CopyOutputData = True
       oFiltro.OutputPosition = oDestino.CellAddress
       oFiltro.ContainsHeader = True

       oIntervalo.Filter(oFiltro)
    End If

End Sub

Sub sbClearCells()
    Dim oDoc As Object, oPlanAtiva As Object
    Dim oDestino As Object

    oDoc = ThisComponent
    oPlanAtiva = oDoc.CurrentController.ActiveSheet
    oDestino = oPlanAtiva.getCellRangeByName("a8:c8")
oDestino.ClearContents(23)
End Sub

Na coluna do ID ele retorna a fórmula que esta na celula pesquisada. Mas eu queria que ele trouxesse apenas a string.

No meu exemplo, quando o código é "135970" a formula na célula de origem é "=linha()-1" que seria "22" Quando faço o filtro via macro o id fica com o valor da linha da celula onde a busca é retornada, no caso "7"

Tem alguma forma de resolver isso?

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

1 Resposta

1

respondidas 2019-03-02 01:48:00 +0200

updated 2019-03-02 01:54:08 +0200

Se o Código for único pode-se usar a formula com ÍNDICE e CORRESP

Veja no arquivo.. mais detalhes.

OPS.... Acerte a formula em C12 =SE(A2="";"";A2)

editar assinalar como ofensivo Excluir Link mais
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2019-03-02 00:57:57 +0200

Lidas: 22 vezes

Última atualização: Mar 02