XL 2010 changer couleur de la font, lors de la colorisation de la cellule

polyteis

XLDnaute Occasionnel
Bonjour
je viens de créer un tableau simple, qui reprend toutes les semaines d'une année.
J'ai répété sur l'ensemble des cellule le n° de la semaine ( écriture blanche ), donc invisible.
j'aimerai savoir comment opérer pour qu'automatiquement en :
coloriant la cellule, la font d'écriture soit noire

merci
 

Pièces jointes

  • semainier.xlsx
    38.9 KB · Affichages: 19

patricktoulon

XLDnaute Barbatruc
re
avant de savoir comment fonctionne le dialog color ayant un return il faudrait savoir quand a quel moment la cellule est coloriée

cela dit un exemple
dans le module de la feuille tu met ceci
tu a une palette couleur qui s'affiche tu choisie la couleur et si c'est blanc le font sera blanc sinon le font sera noir
VB:
Function GetColor()
    Dim lcolor As Long
    If Application.Dialogs(xlDialogEditColor).Show(2, 0, 0, 0) = True Then
        GetColor = ActiveWorkbook.Colors(2)
    End If
    ActiveWorkbook.ResetColors
End Function

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Dim C As Variant
    C = GetColor
    If C = "" Then Exit Sub
    If C = vbWhite Then Target.Font.Color = vbWhite Else Target.Font.Color = vbBlack
    Target.Interior.Color = IIf(C = vbWhite, xlNone, C)
    Cancel = True
End Sub
 

job75

XLDnaute Barbatruc
Bonjour polyteis, patricktoulon, Rouge,

Voyez le fichier joint et cette macro :
VB:
Sub CouleurPolice()
'Menu Exécution => Réinitialiser pour arrêter la macro
Dim c As Range, coul&, coulpol&, t#
For Each c In ThisWorkbook.Sheets("semainier").[D5:BJ117] 'plage à adapter
    coul = c.Interior.Color
    coulpol = c.Font.Color
    If coul <> 16777215 And coulpol = 16777215 Then c.Font.ColorIndex = xlAutomatic
    If coul = 16777215 And coulpol <> 16777215 Then c.Font.Color = 16777215
Next
t = Timer + 1 'temporisation 1 seconde
While Timer < t And t < 86400: DoEvents: Wend 'boucle d'attente
CouleurPolice
End Sub
Elle est lancé à l'ouverture du fichier par cette macro dans ThisWorkbook :
VB:
Private Sub Workbook_Open()
Application.OnTime 1, "CouleurPolice"
End Sub
A+
 

Pièces jointes

  • Couleur police(1).xlsm
    39.9 KB · Affichages: 15

job75

XLDnaute Barbatruc
je n'ai pas pu tester la version "couleur police(1)" de job75, car j'ai à l'ouverture une erreur.
C'est curieux, supprimez le fichier et téléchargez-le de nouveau.

Dans la macro la relance par l'instruction CouleurPolice crée une pile, ce qui alourdit la mémoire.

Pour l'éviter il vaut mieux une boucle Do/Loop, voyez ce fichier (2) :
VB:
Sub CouleurPolice()
'Menu Exécution => Réinitialiser pour arrêter la macro
Dim c As Range, coul&, coulpol&, t#
Do
    For Each c In ThisWorkbook.Sheets("semainier").[D5:BJ117] 'plage à adapter
        coul = c.Interior.Color
        coulpol = c.Font.Color
        If coul <> 16777215 And coulpol = 16777215 Then c.Font.ColorIndex = xlAutomatic
        If coul = 16777215 And coulpol <> 16777215 Then c.Font.Color = 16777215
    Next
    t = Timer + 1 'temporisation 1 seconde
    While Timer < t And t < 86400: DoEvents: Wend  'boucle d'attente
Loop
End Sub
 

Pièces jointes

  • Couleur police(2).xlsm
    39.8 KB · Affichages: 13
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 024
Messages
2 084 718
Membres
102 638
dernier inscrit
TOTO33000