[pt-br-usuarios] Re: Calc: Linhas zebradas (intercalas com 2 cores) de forma automática.

2015-03-25 Por tôpico hamacker
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 = HE0  '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.corm...@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:Z
 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 sirhamac...@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.corm...@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 sirhamac...@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 

[pt-br-usuarios] Re: Calc: Linhas zebradas (intercalas com 2 cores) de forma automática.

2015-03-25 Por tôpico hamacker
Opa, tem um erro delicado aí na macro, o correto seria:

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[em]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
  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 = HE0  'LightYellow #E0

  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



Em 25 de março de 2015 11:13, hamacker sirhamac...@gmail.com escreveu:

 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 = HE0  '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.corm...@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 é
  

[pt-br-usuarios] Re: Calc: Linhas zebradas (intercalas com 2 cores) de forma automática.

2015-03-24 Por tôpico João Mac-Cormick
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:Z
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 sirhamac...@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.corm...@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 sirhamac...@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+unsubscr...@pt-br.libreoffice.org
 # Cancelar sua assinatura: mande e-mail vazio para:
   usuarios+unsubscr...@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+unsubscr...@pt-br.libreoffice.org
# Cancelar sua assinatura: mande e-mail vazio para:
  usuarios+unsubscr...@pt-br.libreoffice.org
# Arquivo de mensagens: http://listarchives.libreoffice.org/pt-br/usuarios/