Je cherche à améliorer le code existant ci-dessous (affecté à des boutons de couleur différentes) selon 3 critères SVP :
Code : Tout sélectionner
Option Explicit
Sub Changer_Couleur(oEvt)
Dim MaCellule as Object, MaCouleur as Long, MaLigne as Long, MaColonne as Long, MaFeuille as Object, I as Integer
MaFeuille = ThisComponent.Sheets(8) 'classeur avec 8 feuilles, boutons sur la dernière feuille
MaCellule = ThisComponent.CurrentSelection
MaLigne = MaCellule.CellAddress.Row
MaColonne = MaCellule.CellAddress.Column
MaCouleur = oEvt.Source.Model.BackGroundColor ' couleur passée par la couleur du bouton
If MaCellule.SupportsService("com.sun.star.table.Cell") Then ' 1 cellule unique est sélectionnée
MaFeuille.getCellRangeByPosition(MaColonne, MaLigne, MaColonne+6, MaLigne).CellBackColor = MaCouleur
End If
End Sub
Mais ça ne fonctionne qu'en sélectionnant la 1ère colonne, autrement, il applique la couleur sur 7 colonnes à compter de la position du pointeur.
En plus, j'aimerais que cela fonctionne aussi en sélectionnant plusieurs lignes différentes, contigues ou non.
Enfin, ça ne reproduit "que" la couleur du fond du bouton sans distinction de la couleur de police qui reste noire.
Je précise que compte tenu du nombre de lignes, je ne souhaite pas passer par la mise en forme conditionnelle, et que je suis assez Noob sur les macros .
J'ai donc du mal à adapter des macros que je trouverai dans suprême de codes et consorts.
Je vous Remercie vraiment du temps que vous me consacrez.