Pular para o conteúdo principal

Aprenda a apagar as linhas vazias no LibreOffice Calc


Estes dias eu precisei realizar uma tarefe um tanto quanto inusitada: apagar as linhas vazias de uma planilha do LibreOffice Calc. E após ter pesquisado muito na internet (além de ter tendado de todas as formas fazer isso), acabei achando a solução nesta lista de discussão.
Basicamente, este procedimento é possível através da implementação de Macros no LibreOffice. Mas o que são Macros?
Os Macros são definidos na programação como um padrão de entrada que é substituído por um novo padrão de saída, e podem ser aplicados como recurso de linguagem em programação, em planilhas, serem aplicadas para converter entradas periféricas em comandos e ações dentro do sistema operacional. Em outras palavras, os Macros são códigos que tem a finalidade de “pegar algo” afim de “transformar em outro algo”.
Abaixo iremos detalhar em um passo-a-passo o procedimento para implementação de uma Macro no Calc que irá permitir-nos apagar linhas vazia dentro das nossas planilhas. Vamos lá!
Suponhamos que eu tenha uma planilha com 10 linhas, e dentro destas 10 eu tenha algumas linhas vazias. Imagine agora eu ter que eliminar manualmente as linhas vazias… é tranquilo né? Então, e se essa minha planilha tivesse, por exemplo, 1.000 linhas? Ou 10.000 linhas? Seria um trabalho “lusitano” (com perdão da comparação… rs) fazer isso manualmente, concorda?
1º) Bom, após abrirmos nossa planilha, iremos em “Ferramentas” >> “Macros” >> “Organizar Macros” >> “LibreOffice Basic…”
passo1_libreoffice_calc
2º) Escolheremos uma macro modelo para editar (“Minhas Macros” >> “Standard” >> “Module 1″ >> “Main”) e clicaremos em “Editar
Captura de tela de 2013-05-02 12:31:41
3º Na janela aberta, repare que já existe uma sintaxe construída no modelo
Captura de tela de 2013-05-02 12:32:15
4º) Agora iremos copiar o conteúdo abaixo entre as entradas “Sub Main” e “End Sub”
REM Macro que remove linhas em branco em uma planilha.
REM Desenvolvida incialmente por Noelson Duarte em *02/06/2005*.
REM Alterada por Francival Lima em 01/03/2008

oDoc = thisComponent
‘Retorna o Documento aberto.
oControlador =oDoc.getCurrentController()
‘Retorna o controlador do Documento aberto.
oPlan = oControlador.getActiveSheet()
‘Retorna a planilha ativa.
oCursor = oPlan.createCursor()
‘Cria um cursor
oCursor.gotoEndOfUsedArea(False)
vEnd = oCursor.getRangeAddress()
oExt = oPlan.getCellRangeByPosition(0,0,vEnd.EndColumn,vEnd.EndRow)
oLinhas = oExt.getRows()
nTotal = oLinhas.getCount() – 1
nFlags = com.sun.star.sheet.CellFlags.VALUE OR _
com.sun.star.sheet.CellFlags.DATETIME OR _
com.sun.star.sheet.CellFlags.STRING OR _
com.sun.star.sheet.CellFlags.ANNOTATION OR _
com.sun.star.sheet.CellFlags.FORMULA
For i = nTotal To 0 Step -1
oExtLin = oPlan.getCellRangeByPosition(0, i, vEnd.EndColumn, i)
oCelulasNaoVazias = oExtLin.queryContentCells(nFlags)
If oCelulasNaoVazias.getCount() = 0 Then
oLinhas.removeByIndex(i, 1)
End If
Next i
Ficando desta forma
Captura de tela de 2013-05-02 12:32:47
5º)  Agora salve a Macro e, quando quiser executá-la, repita o passo 1 e 2, clicando em “Executar” ao invés de “Editar”.
Fonte: Seja Livre

Comentários