Ir ao conteúdo
  • Cadastre-se

Broffice Calc - Alterar cor da fonte conforme data


cseminiuk

Posts recomendados

Bom,

Desde já agradeço pela ajuda.

Vamos lá: Tenho a planilha no Broffice Calc abaixo onde quero realizar o seguinte:

http://www.sendspace.com/file/tky7te

1. Se na coluna A conter qualquer data do mês atual, pintar a fonte das informações contidas das células entre as colunas A e D de vermelho.

2. Se na coluna A conter qualquer data diferente do mês atual, porém do ano atual, pintar a fonte das informações das células entre as colunas A e D de verde.

3. Se na coluna A conter qualquer data com o ano diferente do atual, pintar a fonte das informações das células entre as colunas A e D de laranja

Acho que consegui explicar o que preciso. Na tabela que encaminhei coloquei as cores manualmente para ficar melhor visível o que quero.

Na coluna E consegui fazer a macro com o Select Case.

Abaixo segue um esboço do que tentei fazer e não consegui, mas acho que é algo assim.

coluna(0).Value = "$A$:" + valorLinha

valorCelula2=ThisComponent.Sheets(0).getCellByPosition(0,i).string

select case valorCelula2

case ""

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, coluna())

rem define a cor da fonte

dispatcher.executeDispatch(document, ".uno:Color", "", 0, corPalavraVermelho())

case else

rem "caso nao case com ninguem"

end Select

Se alguém conseguir de outra forma , além da utilização do case, podemos alterar no código e ver se funciona.

Fico no aguardo. Se prcisar de mais informações, só pedir.

Link para o comentário
Compartilhar em outros sites

[...]

1. Se na coluna A conter qualquer data do mês atual, pintar a fonte das informações contidas das células entre as colunas A e D de vermelho.

2. Se na coluna A conter qualquer data diferente do mês atual, porém do ano atual, pintar a fonte das informações das células entre as colunas A e D de verde.

3. Se na coluna A conter qualquer data com o ano diferente do atual, pintar a fonte das informações das células entre as colunas A e D de laranja

.

Então, consegui aplicar estas 3 condições com fórmulas na Formatação Condicional:

http://www.sendspace.com/file/jxvryd

Obs.: Uso o LibO 4.1.1.2

[]s.

Link para o comentário
Compartilhar em outros sites

Olá,

Obrigado pelas respostas, porém não consegui incluir a formatação condicional na macro que já tenho para realizar as outras alterações.

Uso o BrOffice.org 3.2.1

OOO320m19 (Build:9505)

Por este motivo que tentei fazer algo com o case, como fiz com a outra formatação.

Tiank,

Abri tua planilha, porém não consegui ver as formulas utilizadas para a formatação condicional.

Link para o comentário
Compartilhar em outros sites

cseminiuk,

As fórmulas que estão no arquivo são as seguintes:

Condicoes.jpg

Talvez não tenham aparecido aí pela incompatibilidade entre as versões. O BrOffice 3.2 é um pouco antigo e carece de muitos recursos hoje disponíveis no LibreOffice 4.1 ou no Apache Openoffice 4.0.1. Talvez fosse hora de, diante das suas possibilidades, considerar a atualização do pacote.

Agora, pessoalmente pelo entendi diante de sua explicação, a formatação condicional pode atender perfeitamente sua demanda.

[]s.

Link para o comentário
Compartilhar em outros sites

Tiank,

Obrigada pelas informações, porém aqui não funcionou. Realmente acho que com a formatação condicional não irá funcionar nesta versão.

Já havia tentado outras fórmulas e não consegui, nem para fazer as outras formatações, que consegui somente com a aplicação do case.

Como é um pacote padrão da empresa, não podemos atualiza-lo. Terei que tentar algo nesta versão mesmo.

Tentei colocar tua fórmula no meu código e ficou assim, porém não funcionou:

coluna(0).Value = "SE(ANO($A1)<>ANO(HOJE());1):" + valorLinha

valorCelula2=ThisComponent.Sheets(0).getCellByPosition(0,i).string

select case valorCelula2

case ""

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, coluna())

rem define a cor da fonte

dispatcher.executeDispatch(document, ".uno:Color", "", 0, corPalavraVermelho())

case else

rem "caso nao case com ninguem"

end Select

O que posso fazer???

Link para o comentário
Compartilhar em outros sites

Olá Tiank,

Segue link do arquivo da planilha que encaminhei anteiormente:

http://www.sendspace.com/file/t3vmza

Na função da data deixei em braco, pois o que encaminhei anteiormente não funcionou.

Se tu conseguir me ajudar de alguma forma com esse arquivo. O Broffice suporta o Java também, porém sou péssima em programação.

Link para o comentário
Compartilhar em outros sites

Olá,

Eu "traduzi" a fórmula que eu postei antes na linguagem Basic e consegui que funcionasse.

Utilizei a estrutura If...Then...Else e os meus "enxertos" no seu código foram:


'***** "ESTA PARTE DEVE VIR ANTES DO LOOP FOR NEXT" ******
dim colunasAaD(0) as new com.sun.star.beans.PropertyValue
colunasAaD(0).Name = "ToPoint"
'*********************************************************

'***************** "PARTE COM O TESTE LÓGICO" ******************
rem Coluna A
coluna(0).Value = "$A$" + valorLinha
valorCelula3=ThisComponent.Sheets(0).getCellByPosition(0,i).string

rem Colunas entre A e D
colunasAaD(0).Value = "$A$" + valorLinha + ":$D$" + valorLinha
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, colunasAaD())

If Year(ValorCelula3) = Year(Now()) Then
rem Se for o ano atual
If Month(ValorCelula3) = Month(Now()) Then
rem Se for o mês atual
rem define a cor da fonte
dispatcher.executeDispatch(document, ".uno:Color", "", 0, corPalavraVermelho())
Else
rem Se for um mês diferente dentro do ano atual
rem define a cor da fonte
dispatcher.executeDispatch(document, ".uno:Color", "", 0, corPalavraVerde())
End If
Else
rem Se for um ano diferente
rem Usei Azul para teste
dispatcher.executeDispatch(document, ".uno:Color", "", 0, corPalavraAzul()
End If

Subi a sua planilha com o código que alterei:

http://www.sendspace.com/file/p5ujmm

É só baixar e testar. Espero que seja de ajuda para você!

[]s.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...