Libreoffice Basic‏

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.

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

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