Pergunte aqui
0

Libreoffice Basic‏

perguntadas 2013-08-14 23:19:52 +0200

imagem do gravatar de samuelesoares

updated 2017-06-24 16:00:19 +0200

imagem do gravatar de Grafeno

Boa tarde,

Gostaria de saber como construir uma macro usando Basic que percorre todas as linhas de uma planilha e acesse algumas células destas linhas e montar uma segunda planilha com os resultados obtidos.

O problema não é a macro em si e sim as funções para recuperar valores de células, percorrer linhas, etc.

Já procurei na internet mas sempre acho a respeito Libreoffice Basic coisas mais relacionadas a edição, mas material assim como acessar linhas, células ou criar planilhas via código não.

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

1 Resposta

0

respondidas 2013-08-24 19:15:35 +0200

imagem do gravatar de Grafeno

updated 2013-08-24 19:18:08 +0200

Olá,

Talvez a rotina abaixo possa ajudá-lo. Ela percorre as linhas utilizadas da planilha ativa e retorna (exibe) o conteúdo:

Sub PercorrerExibir()
Dim oPlanAtiva as Object
Dim oCelOrigem as Object
Dim Cont, Lin, Col as Long

    'Seleciona a Planilha Ativa
    oPlanAtiva = ThisComponent.getCurrentController().getActiveSheet()

    'Função para a quantidade de Linhas utilizadas
    Lin = LinhasUsadas( oPlanAtiva )

    'Percorre as linhas preenchidas e exibe os conteúdos das células
    For Cont = 0 to Lin - 1
        oCelOrigem = OPlanAtiva.getCellByPosition( 0,Cont )

        Select Case oCelOrigem.Type 
           Case com.sun.star.table.CellContentType.EMPTY 
           MsgBox "Conteúdo: <vazio>"
           Case com.sun.star.table.CellContentType.VALUE
           MsgBox "Conteúdo: " & oCelOrigem.Value
           Case com.sun.star.table.CellContentType.TEXT
           MsgBox "Conteúdo: " & oCelOrigem.String
           Case com.sun.star.table.CellContentType.FORMULA
           MsgBox "Conteúdo: " & oCelOrigem.Formula
         End Select
    Next 
End Sub

REM ------ FUNÇÃO PARA CONTAR LINHAS USADAS ------
Function  LinhasUsadas( oPlan as Object  ) as Long
Dim oCursor as Object
    oCursor = oPlan.createCursor
    oCursor.gotoEndOfUsedArea(True)
    LinhasUsadas = oCursor.Rows.Count
End Function

...
Atte,
Grafeno

editar assinalar como ofensivo Excluir Link mais

Comentários

Valeu, vai me ajudar bastante. Também encontrei informações no https://wiki.documentfoundation.org/Macros/pt-br.

imagem do gravatar de samuelesoaressamuelesoares ( 2013-08-26 00:42:14 +0200 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2013-08-14 23:19:52 +0200

Lidas: 581 vezes

Última atualização: Aug 24 '13