Como criar uma lista com plano de fundo com cores alternadas?

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 Descrição da imagem a esquerda da resposta, para finalizar a pergunta.