[Résolu][Calc] Couleur sur cellule sélectionée

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Avatar de l’utilisateur
luky-luke
InconditiOOnnel
InconditiOOnnel
Messages : 948
Inscription : 27 nov. 2010 00:17
Localisation : gâtine deux-sèvrienne

[Résolu][Calc] Couleur sur cellule sélectionée

Message par luky-luke »

Bonjour
Pour faire suite à ce fil Passer cellule en surbrillance
Un exemple qui change la couleur de fond de la cellule que l'on vient de sélectionner et remet la cellule précédente en couleur de fond par défaut.

Code : Tout sélectionner

Option explicit
Sub Color_select
Dim CellSelect As Object, MaFeuille As Object
Dim LastAddressCell As String, CellAddress As Object, LastCell As Object

	CellSelect = ThisComponent.CurrentSelection ' La cellule sélectionnée
	LastAddressCell = CellSelect.AbsoluteName	' Nom de la cellule sélectionnée
	MaFeuille = ThisComponent.CurrentController.ActiveSheet ' La feuille active

	CellAddress = MaFeuille.getCellRangeByName("A1") ' Cellule ou l'on écris le nom de la cellule sélectionnée
	

	CellAddress.CharColor = RGB(255,255,255) 'Couleur de police
	CellAddress.CharHeight = 6 'Hauteur de police
		
	CellSelect.CellBackColor = RGB(127,200,255)'Couleur fond cellule / Rouge, vert, bleu / valeur de 0 à 255
	
	If CellAddress.String = "" Then CellAddress.String = LastAddressCell
	
	If CellSelect.AbsoluteName <> CellAddress.String Then
		LastCell = MaFeuille.getCellRangeByName(CellAddress.String)
		LastCell.CellBackColor = -1
		CellAddress.String = LastAddressCell
	End if
End sub

La cellule A1 de la feuille active est utilisée en écriture pour mémoriser l'adresse de la cellule que l'on vient de "quitter". Bien entendu cette cellule ne doit pas être protégée. Je fais un peu le fainéant sur ce coup là, si quelqu'un à une meilleur idée ne pas hésiter à faire des modifications.
La macro Color_select est branchée (clic droit sur l'onglet feuille) à Événements de la feuille > Sélection modifiée.
Une deuxième macro (assigneMacro) est présente dans le fichier et permet d'automatiser le branchement de la macro à l'ensemble des feuilles du classeur.
La sélection multiple est possible et ne semble pas créer d'erreur... enfin j'espère :lol: . Les feuilles sont protégées par mot de passe :mrgreen: Mais le propriétaire du fichier (lien de la discussion donné plus haut) ne manquera pas de nous le communiquer :?:
 Ajout : Édition pour Changement de fichier
1° - Dans le nouveau fichier joint, les feuilles ne sont plus protégées par mot de passe.
2° - Une écoute pour déterminer la feuille active est lancée à l'ouverture du fichier (Barre de menu Outils > Personnaliser... > Ouvrir le document. Plus d'écriture dans la cellule A1
Cordialement
Luke
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par luky-luke le 23 janv. 2017 19:10, modifié 2 fois.
LibO 7.4.7.2 Raspberry pi et Libo 7.6.5.2 LinuxMint 22
Xray ne tient pas lieu de tout, mais une pratique sans Xray ne vaut pas grand chose
Enseigneur
Fraîchement OOthentifié
Messages : 7
Inscription : 21 janv. 2017 15:31

Re: [Writer]Couleur sur cellule sélectionée

Message par Enseigneur »

Merci pour cette réponse.
Le mot de passe est 1
Cordialement.
Libre Office Version: 5.2.4.2 sur Windows vista et windows 10
Enseigneur
Fraîchement OOthentifié
Messages : 7
Inscription : 21 janv. 2017 15:31

Re: [Writer]Couleur sur cellule sélectionée

Message par Enseigneur »

Bonsoir et merci à vous.
Votre aide a été appréciable.
Amicalement.
Libre Office Version: 5.2.4.2 sur Windows vista et windows 10