Déterminer couleur de fond affectée par style conditionnel

Bonjour,

j'essayes d'écrire une petite macro dont le but est d'affecter une valeur sur une plage de cellules qui se tient sur 1 ligne et n colonnes en fonction de la couleur de fond de chaque cellule.

Le code est le suivant :

Sub Affecter4()

For i = 1 To 5
   If Range("Janvier").Cells(1, i).Interior.ColorIndex <> 2 Then

        Range("Janvier").Cells(1, i).Value = "T"

    End If
Next

End Sub

Alors problème N°1 :

pourquoi ça ne fonctionne pas en appelant la plage nommée que j'ai créée (Janvier) et pourquoi quand je mets les coordonnées des cellules (G10:1K10) ca fonctionne ?

Problème N°2 :

Elle est sensée ne valoriser que les cellules dont la couleur de fond est autre que blanc mais en fait elle valorise toutes les cellules quelque soit leur couleur. Je précise que les cellules avec une couleur de fond autre que blanc le sont via des styles conditionnels. Est ce que ca peut jouer et dans ce cas, comment faire ?

Merci d'avance pour votre aide et conseils

Bonsoir,

En affectant une couleur de remplissage autre que le blanc à la plage G10:K10, et en nommant cette plage "Janvier", la procédure renseigne bien les 5 cellules avec la valeur "T".

Par contre, la propriété Interior.ColorIndex ne prend pas en compte la couleur d'un remplissage effectué avec une mise en forme conditionnelle.

Dans ce cas, il est préférable de faire le test avec la condition de la MEFC plutôt que la couleur.

A+

Par contre, la propriété Interior.ColorIndex ne prend pas en compte la couleur d'un remplissage effectué avec une mise en forme conditionnelle.

Dans ce cas, il est préférable de faire le test avec la condition de la MEFC plutôt que la couleur.

Ah ouais mais alors là ca complique vachement le truc parce que l'onglet est en fait un planning avec en colonne les jours : de 1 à 31 et en ligne les mois. Et les MFC sont en fait des algo qui prennent en variable chaque jour (les colonnes) pour un mois donné (lignes) pour griser les cellules correspondants aux jours fériés, WE de ce mois là.

Remettre ca dans la macro, ca va être infernal sans parler du fait que je ne saurais pas comment faire. Le but de la macro et de remplir avec un chiffre chaque jour du mois qui est un jour travaillé.

Y'a pas moyen de contourner ça ?!

Bonjour,

Il faudrait tout d'abord que tu montres comment sont établies ces mises en formes conditionnelles.

Un exemple concret ne sera pas de trop .

A+

Est ce que je vais être taxé de fainéant si je vous upload une version de mon fichier ?

Allez, pour les jours fériés (rosés) ça donne ça =>

=DATE($B$2;MOIS($B10);G$9)=RECHERCHEH(DATE($B$2;MOIS($B10);G$9);Matrice!$B$31:$L$31;1;FAUX)

Pour les WE (grisés) c'est ça =>

=JOURSEM(DATE($B$2;1;G$9);2)>5

Et pis ça (jaune à chier), je me souviens plus pourquoi j'ai fais ça =>

=MOD(B2;4)

Bonjour,

Voici un code qui illustre ce que je te disais.

Lorsqu'une date satisfait une des conditions des MEFC, alors la cellule prend la valeur "T".

Sub Affecter4()
Dim i As Integer, j As Integer
Dim LaDate As Date
Dim C1 As Boolean, C2 As Boolean, C3 As Boolean
    For j = 10 To 21
        For i = 7 To 37
            With Worksheets("CRA Récapitulatif")
                'Détermination de la date
                LaDate = DateSerial(.Range("B2"), Month(.Cells(j, 2)), .Cells(9, i))
                'On contrôle si la date est un jour férié
                C1 = Application.CountIf(Worksheets("Matrice").Range("B31:L31"), LaDate) > 0
                'On contrôle si la date est un jour de W.E.
                C2 = Weekday(LaDate, vbMonday) > 5
                'On contrôle si l'année est bissextile
                C3 = .Range("B2") Mod 4 = 0
                'Si une de ces 3 conditions est vérifiée, on écrit "T"
                If C1 Or C2 Or C3 Then
                   .Cells(j, i).Value = "T"
                End If
           End With
        Next i
    Next j
End Sub

A+

Génial !!

C'est exactement ce que je voulais faire mais le contraire

En fait Ta macro remplit toutes les cellules autres que les blanches. C'est à dire les grisées, les rosées et les jaunes. Or ce sont celles qui sont seulement blanches, les jours travaillées, que je veux remplir ! Et je veux le faire pour un mois donnée, mois par mois. Donc autant de bouton que de mois qui pointeront vers la même macro.

Mais j'ai l'idée avec ton travail. Je vais m'en inspiré et essayer de la retraivailler.

Merci en tout cas, tu m'as bien aidé.

O.K. reviens nous voir si besoin

A+

Rechercher des sujets similaires à "determiner couleur fond affectee style conditionnel"