Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

messieurs,

je tiens à vous remercier tous pour vos reponses,
je n'ai pas pu tester la version "couleur police(1)" de job75, car j'ai à l'ouverture une erreur.
les 2 autres solutions sont très ressemblantes.
encore merci
 
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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…