Arquivo de exemplo:
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?