Pergunte aqui
1

Como Mudar a Cor de uma Célula ao passar com o Mouse Sobre ela.

perguntadas 2016-09-06 01:03:06 +0100

imagem do gravatar de Carlos2

updated 2016-09-27 18:06:46 +0100

imagem do gravatar de Grafeno

A intenção é mudar a cor de algumas células específicas ao passar com o cursor do mouse sobre elas - Como se fosse uma animação dos rótulos de colunas.

Fiz isso utilizando uma macro ao passar o mouse sobre a célula e outra macro quando o mouse sai da célula (pra voltar à cor original). Porém não acho que ficou funcional, pois utilizei macro pra cada célula e a atribuí à uma ação de passar o mouse sobre um Campo de Rótulo que criei para cada célula que pretendia ter a "animação".

Macro para mudar a cor da célula

Solução precária

Solução precária com macros

Quero simplificar isto.

De preferência, omitir a seguinte parte, pois seria melhor se as cores das células fosse alteradas sem ficar visível sua seleção. Ou seja, não quero deslocar a seleção para onde eu passar o mouse. Pretendo apenas mudar a cor de fundo das células.

Parte a omitir

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

Comentários

Seria interessante disponibilizar uma planilha de exemplo, com a aparência e códigos que você utilizou. Dados sigilosos podem ser omitidos. É possível subir o arquivo na mesma questão, apenas editando a mesma.

imagem do gravatar de GrafenoGrafeno ( 2016-09-07 14:36:44 +0100 )editar

Boa tarde, Grafeno. Obrigado, mais uma vez, pela atenção. Segue link com um exemplo simplificado da planilha.

https://www.dropbox.com/s/yys3vk2fyk0...

Obs.: Mesmo que não haja uma solução mais simplificada para a alterar a cor da célula ao passar o mouse, se for possível pelo menos fazer com que a seleção da célula não se altere (alterando apenas a cor da célula), já me deixaria satisfeito.

imagem do gravatar de Carlos2Carlos2 ( 2016-09-12 17:51:00 +0100 )editar

1 Resposta

2

respondidas 2016-09-16 14:48:42 +0100

imagem do gravatar de Grafeno

Bom dia,


O Disptacher simula o clique do mouse do usuário. Ele acaba disparando alertas, avisos, e exibindo seleções de células/planilhas, sem fornecer meios de silenciar estas ações. Por isso, quando se pretende escrever uma rotina mais silenciosa é preciso usar a API UNO.

Reescrevendo as macros, por ex. do Label1, teríamos:

Sub Foco_no_Label1
    oDoc = ThisComponent
    oPlan = oDoc.CurrentController.ActiveSheet
    oCel = oPlan.getCellRangeByName("B3")

    oCel.CellBackColor =  15132415
End Sub

Sub Foco_fora_Label1
    oDoc = ThisComponent
    oPlan = oDoc.CurrentController.ActiveSheet
    oCel = oPlan.getCellRangeByName("B3")

    oCel.CellBackColor =  14474483
End Sub


Obtém-se o acesso direto a célula especificada sem a necessidade de que a mesma seja selecionada.

E abaixo segue uma nova versão do arquivo com as macros "silenciosas" adaptadas para os labels:


Atte,

editar assinalar como ofensivo Excluir Link mais

Comentários

1

Você é Demais, Grafeno!!

Era exatamente o que eu precisava!

Muitíssimo obrigado!

imagem do gravatar de Carlos2Carlos2 ( 2016-09-19 16:27:08 +0100 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2016-09-06 01:03:06 +0100

Lidas: 490 vezes

Última atualização: Sep 16 '16