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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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

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

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour