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

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”.

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

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.

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

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.

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,

Você é Demais, Grafeno!!

Era exatamente o que eu precisava!

Muitíssimo obrigado!