Fiz do jeito mais difícil, peguei um exemplo básico de macro que contava
linhas pares e ímpares e com a ajuda do google descobri funções de
formatação, dai consegui fazer o que já fazia com uso de estilos que você
descreveu.
Minha frustração é que não consigo criar um botão/atalho para executar essa
macro. Para executá-la é um esforço heroico de
Ferramentas->Macro->Executar->Arvore1->SubArvore2->SubArvore3 e selecionar
a macro e então executar. Fico pensando se o time do LibreOffice sabe o
quão complicado é usar macros no editor. Além disso, enquanto aprendia a
criar a macro, erros na macro (erro de programador principiante) travaram o
LibreOffice inteirinho.
Ah também não dá para fazer uma janela de dialogo para selecionar uma cor,
senão teria colocado no script.
Minhas duas frustrações com o uso de macro.
Vou tentar abrir um ticket e ver se eles poderiam incluir um modo de visão
assim, que apresentasse a janela em modo zebrado e grifando o eixo X e Y
onde o cursor estiver posicionado, pois isso ajuda bastante a focar.
REM ***** LIBREOFFICE BASIC *****
REM O objetivo dessa função é aplicar cor par/impar para
REM cada linha da tabela. O intuito é evitar enganos por seguir
REM um valor numa determinada linha e pêrde-la de vista.
REM O funcionamento é simples, apenas selecione a área que
REM deseja zebrar e aplique essa macro.
REM Ajuste as variaveis nZebra1 e nZebra2
REM Autor: Gladiston Hamacker Santana <sirhamacker[@]gmail.com>
Sub ZebrarTabela
Dim oCurrentSelection As Variant
Dim oRows As Variant
Dim oCols As Variant
Dim oCell As Variant
Dim Li As Long
Dim Ci 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
Const nZebra2 = &HFFFFE0 'LightYellow
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)
If (Li Mod 2) = 0 Then
oCell.setPropertyValue("CellBackColor", nZebra1)
Else
oCell.setPropertyValue("CellBackColor", nZebra2)
EndIf
Next Ci
Next Li
EndIf
End Sub
Em 24 de março de 2015 18:35, João Mac-Cormick <joao.cormick@gmail.com>
escreveu:
Neste caso, eu costumo fazer o seguinte, para ter o efeito "zebrado":
1) Criar um estilo
"Formatar--> Estilos e Formatação"
Com o botão direito do mouse, clique no estilo "Padrão" e selecione "Novo…"
Na aba "Organizador", na caixa Nome, digite "cinza"
Na aba "Plano de fundo", clique na cor "cinza 3"
Salve este estilo de célula.
2) Criar uma formatação condicional
Formatar--> Formatação condicional--> Gerenciar…
Clique no botão "Adicionar"
Na "Condição 1"
Selecione a opção "A fórmula é"
Digite a fórmula ÉÍMPAR(LINHA())
Selecione o estilo criado anteriormente em "Aplicar estilo"
Lá embaixo, na caixa "Intervalo:", digite o tamanho que sua planilha
poderá ter, por exemplo "A1:Z9999"
Clique no botão "OK"
Clique no botão "OK", novamente
E se a planilha aumentar? Basta modificar apenas o intervalo.
Fiz estes passos aqui na versão 4.4.1, e funcionou.
Mas acho que você já fez isso também, certo?
Saudações solidárias,
João
Em 24 de março de 2015 17:50, hamacker <sirhamacker@gmail.com> escreveu:
Sim, isso é o básico.
A intenção é apenas ver zebrado, não necessariamente formatar as linhas.
Como eu havia dito, não quero deixar a tabela mais bonita, apenas evitar
confusão quando estiver perseguindo dados com os olhos.
Em 24 de março de 2015 17:45, João Mac-Cormick <joao.cormick@gmail.com>
escreveu:
Você já usou a opção "Janela--> Congelar"? Dependendo das colunas
iniciais da planilha, ajuda bastante.
Em 24 de março de 2015 17:22, hamacker <sirhamacker@gmail.com> escreveu:
Alguém aí sabe como fazer o Calc exibir linhas em cores diferentes ou
zebradas.
Não quero uma célula em cor diferente, pois assim apenas usaria a
formatação condicional.
Mas gostaria que as linhas fossem intercaladas em cores diferentes para
melhorar a exibição e evitar equívocos de olhar para uma célula e quando
deslocar o olho para a direita então pular a linha e apontar valores
errados.
Hoje estou usando estilos, cada linha aplico um estilo, mas é bobagem
porque de fato o objetivo não é deixar a planilha mais bonita, mas
evitar
equívocos ao seguir uma linha.
Estava tentando isso com formatação condicional, mas não consegui,
aparentemente o estilo só pode ser aplicado a célula e não uma linha
inteira.
Se alguém tiver alguma dica, por favor, compartilhe.
--
Você está recebendo e-mails da lista usuarios@pt-br.libreoffice.org
# Informações sobre os comandos disponíveis (em inglês):
mande e-mail vazio para usuarios+unsubscribe@pt-br.libreoffice.org
# Cancelar sua assinatura: mande e-mail vazio para:
usuarios+unsubscribe@pt-br.libreoffice.org
# Arquivo de mensagens:
http://listarchives.libreoffice.org/pt-br/usuarios/
--
Você está recebendo e-mails da lista usuarios@pt-br.libreoffice.org
# Informações sobre os comandos disponíveis (em inglês):
mande e-mail vazio para usuarios+unsubscribe@pt-br.libreoffice.org
# Cancelar sua assinatura: mande e-mail vazio para:
usuarios+unsubscribe@pt-br.libreoffice.org
# Arquivo de mensagens: http://listarchives.libreoffice.org/pt-br/usuarios/
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.