Macro couleur avec MFC

Bonjour

Dans mon code, j'ai cet extrait :

If Cells(D.Row, D.Column).Interior.Color = RGB(255, 255, 255) Then 'si D blanche

                    With Sheets("Safety & Airworthiness").Shapes.Range(Array("SLetter")).TextFrame2.TextRange.Characters(1, 1).Font.Fill 'S bleu
                        .Visible = msoTrue
                        .ForeColor.ObjectThemeColor = msoThemeColorAccent1
                        .ForeColor.TintAndShade = 0
                        .ForeColor.Brightness = -0.25
                        .Transparency = 0
                        .Solid
                    End With

                Else 'si D n'est pas blanche

                    If Cells(D.Row, D.Column).Interior.Color = RGB(127, 127, 127) Then

Cependant, dans la zone balayée par D, il y a des MFC, du même gris que celui recherché : RGB(127,127,127).

J'ai lu la macro avec le Debuger et elle considère ma case comme blanche, soit le premier if.

Est-il donc possible d'intégrer ma MFC dans ma macro ?

Ou alors, si non, est-il possible de faire une comme une MFC avec une macro ?

Bonjour,

VBA ne reconnait pas les couleurs provenant d'une MFC

et la MFC passera toujours au-dessus d'une macro

Est-il donc possible d'avoir une macro qui me mets les week-ends en gris RGB(127,127,127) avec l'écriture en blanc RGB(255,255,255) ?

Je mets le fichier en PJ.

17azkaet.xlsm (31.24 Ko)

Bonjour,

Dans ta mise en forme conditionnelle c'est 128, j'ai mis ça dans le programme du coup, voici le résultat :

J'ai appliqué un correctif au programme, il ne réinitialisais pas les formats des cellules, j'ai aussi ajouté des commentaires et un bouton de lancement de programme, voici le résultat :

Super merci, cependant, si j'essaie de le placer dans un Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range), cela ne fait plus rien. Si je change le mois dans ma liste, rien n'apparait ... ?!

Bonjour,

VBA ne reconnait pas les couleurs provenant d'une MFC

et la MFC passera toujours au-dessus d'une macro

Salut M12 !

La reconnaissance des couleurs provenant d'une MFC peut se faire avec DisplayFormat.

La seule chose est que cette propriété ne peut être utilisée dans une fonction destinée à une utilisation en feuille de calcul (interdiction de Microsoft... !), ce qui empêche son utilisation dans les fonctions personnalisées opérant sur les couleurs... Mais elle est utilisable dans le code, dès lors que ce n'est pas pour une fonction personnalisée.

Cordialement.

Bonjour MFerrand,

Pouvez-vous essayer de m'aider ?

Ce code fonctionne si je l'applique à un bouton, mais pas si je le place dans un

Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)

For Each cel In Range("B5", "H9") 'pour toutes les cellules dans la zone définie
        If cel <> "" Then 'si la cellule n'est pas vide
            If DateTime.Weekday(cel, 2) >= 6 Then 'si le jour de la semaine est supérieur ou égal à 6
                cel.Font.Color = RGB(255, 255, 255) 'on met du blanc en couleur de texte
                cel.Interior.Color = RGB(128, 128, 128) 'du gris en remplissage de cellule
            Else 'sinon
                cel.Font.ColorIndex = xlAutomatic 'on met la couleur auto pour le texte
                cel.Interior.Color = xlNone 'on enlève le remplissage de la cellule
            End If
        End If
    Next cel

Rebonjour,

Pas de problème!

J'ai mis un call week_end dans la fonction Private Sub Worksheet_Calculate() de la Feuil1

Maintenant quand tu changes de mois ça te change aussi la couleur

Voilà :

OH SUPER ! Enfin ! J'y suis depuis hier

Merci beaucoup !!

Bonjour,

Lorsque je me suis livré à un certain nombre de tripatouillage sur ton calendrier, j'étais venu lire ce sujet parce que tu y renvoyais...

Mais j'avoue que j'ai alors laissé de côté car je n'ai toujours pas compris ce que tu voulais exactement faire... J'avais retenu l'idée de modifier la couleur du sigle sur laquelle je me suis un peu penché mais il restait un élément auquel je n'ai pas trouvé comment accéder après avoir passé un certain temps dans le maquis des propriétés des Shapes et des objets dérivés et je l'ai laissée momentanément de côté.

Je pense avoir décelée une piste avec Font2 mais il me faut faire des tests auxquels je n'ai pas le temps de procéder pour le moment...

Cordialement.

Bon, je reviens parce que j'ai toujours le même problème.

Je reprends mon code au tout début :

If Cells(D.Row, D.Column).Interior.Color = RGB(255, 255, 255) Then 'si D blanche

                    With Sheets("Safety & Airworthiness").Shapes.Range(Array("SLetter")).TextFrame2.TextRange.Characters(1, 1).Font.Fill 'S bleu
                        .Visible = msoTrue
                        .ForeColor.ObjectThemeColor = msoThemeColorAccent1
                        .ForeColor.TintAndShade = 0
                        .ForeColor.Brightness = -0.25
                        .Transparency = 0
                        .Solid
                    End With

                Else 'si D n'est pas blanche

                    If Cells(D.Row, D.Column).Interior.Color = RGB(127, 127, 127) Then

Avec le nouveau code pour le week_end, le

If Cells(D.Row, D.Column).Interior.Color = RGB(255, 255, 255) Then

ne devrait pas fonctionner et le code devrait passer sur

If Cells(D.Row, D.Column).Interior.Color = RGB(127, 127, 127) Then

Cependant, il voit la cellule comme blanche alors que ma macro week_end vient de la mettre grise...

Bonsoir MFerrand,

Une bonne chose à savoir que j'ignorais,

Après je ne mélange pas les MFC et les couleurs par macros

pour moi, c'est un ou l'autre suivant l'utilité

Bonjour,

VBA ne reconnait pas les couleurs provenant d'une MFC

et la MFC passera toujours au-dessus d'une macro

Salut M12 !

La reconnaissance des couleurs provenant d'une MFC peut se faire avec DisplayFormat.

La seule chose est que cette propriété ne peut être utilisée dans une fonction destinée à une utilisation en feuille de calcul (interdiction de Microsoft... !), ce qui empêche son utilisation dans les fonctions personnalisées opérant sur les couleurs... Mais elle est utilisable dans le code, dès lors que ce n'est pas pour une fonction personnalisée.

Cordialement.

Rechercher des sujets similaires à "macro couleur mfc"