Preciso formatar uma tabela que já está concluída, onde são 3 mil linhas… Preciso que em cada linha ímpar seja aplicada uma determinada cor, por exemplo “cinza azulado” e as demais (as linhas pares) na cor normal da planilha, ou seja, branca. Como faço isso?
De uma olhada aqui:
http://www.mail-archive.com/usuarios@pt-br.libreoffice.org/msg07388.html
Existe também uma macro, de autoria de Gladiston Hamacker Santana
Aqui um arquivo com a macro acionada no Menu.
'=========================================================================
Sub ZebrarArea 'Selecionar area a Zebrar
'exemplo de uso: ZebrarArea 'tem que haver area Selecionada
rem ----------------------------------------------------------------------
' O objetivo dessa função é aplicar cor par/impar para
' cada linha da tabela. O intuito é evitar enganos por seguir
' um valor numa determinada linha e pêrde-la de vista.
' O funcionamento é simples, apenas selecione a área que
' deseja zebrar e aplique essa macro.
' Ajuste as variaveis nZebra1 e nZebra2
' Autor: Gladiston Hamacker Santana <sirhamacker[@]gmail.com>
rem ----------------------------------------------------------------------
Dim oCurrentSelection As Variant
Dim oRows As Variant
Dim oCols As Variant
Dim oCell As Variant
Dim Li As Long
Dim Ci As Long
Dim nRow As Long
' Uma boa idéia de cores que podem ser usadas, podem ser encontradas nos
sites:
' http://www.htmlgoodies.com/tutorials/colors/article.php/3478961
' http://erikasarti.net/html/tabela-cores/
' http://domingoscsouza.com.br/blog/front-end/tabela-de-cores-html
' Valores em hexa devem ser precedidos por &H
Const nZebra1 = &HFFEFD5 'PapayaWhip #FFEFD5
Const nZebra2 = &HFFFFE0 'LightYellow #FFFFE0
oCurrentSelection = ThisComponent.getCurrentSelection()
If oCurrentSelection.supportsService("com.sun.star.table.CellRange") Then
oRows = oCurrentSelection.getRows()
oCols = oCurrentSelection.getColumns()
For Li = 0 To oRows.getCount()-1
For Ci = 0 To oCols.getCount()-1
oCell = oCurrentSelection.getCellByPosition(Ci, Li)
nRow = oCell.RangeAddress.StartRow
If (nRow Mod 2) = 0 Then
oCell.setPropertyValue("CellBackColor", nZebra1)
Else
oCell.setPropertyValue("CellBackColor", nZebra2)
EndIf
Next Ci
Next Li
EndIf
End Sub
E também pode ser feita por formatação condicional, a vantagem desta é que se inserir linha, a “zebra” é corrigida.
Utiliza-se a formula é: ÉÍMPAR(LINHA())
Também exemplo no arquivo.
Caso a resposta atendeu sua necessidade, por gentileza, click na bolinha a esquerda da resposta, para finalizar a pergunta.