VBA-Parcourir plage cellule coloriser selon une condition

Bonjour,

N'etant pas adepte du VBA et d'excel, je viens vers vous, car je rencontre un probleme dans mon code.

Je voudrais parcourrir les celulles N2 à W69 afin de controler si les dates inscrite sont valide ou pas. Celles ci on une date de validité de 1 an, je m'explique. Imaginons qu' il y a une date "21/08/2021", celle ci ne sera pas valide car, plus 1 an est passé.

Donc

- 1ere condition si la la cellule est vide on rempli le fond en gris est on passe a la cellule suite

- 2eme condition si la cellule a une date qui a plus de 11 mois, on rempli le font en rouge

- 3eme condition si la cellule a ete modifié entre temps ou est deja bonne mettre la couleurs d'origine.

pour le moment j'ai fais ce code la:

Sub Test()

    Dim Cel As Range

    For Each Cel In Range("N2:W69")
        If Cel <> "" Then
            Cel.Interior.ColorIndex = 56
        ElseIf CDate(DateAdd("m", 11, Cel)) >= CDate(DateAdd("m", -1, Date)) Then
            'MsgBox CDate(DateAdd("m", 11, Cel))
            'MsgBox CDate(DateAdd("m", -1, Date))
            Cel.Interior.ColorIndex = 3
        ElseIf CDate(DateAdd("m", 11, Cel)) < CDate(DateAdd("m", -1, Date)) Then
            'couleur d'origine
        End If
    Next

End Sub

Hello,

Plutôt que d’utiliser du VBA les mises en formes conditionnelles ne suffiraient pas ?

@+

Bonjour,

Malheureusement il n'est pas possible de la faire, en tout cas je n'ai pas trouvé la solution, c'est pour ca que je me suis tourné vers le VBA.

Cordialement.

Hello,

Un test via MFC.

Est ce que c'est dans ce genre là ? Pour les autres cellules, il y a d'autres tests à exécuter ?

@+

Re,

Oui, c'est exactement ca. J'avais fait la même chose, mais avec une plage de cellule est cela ne fonctionnais pas. Du coup, il suffit de mettre juste la 1re cellule où on veut que ça commence et ça parcourt toutes les autres, c'est bien ça ?

Merci pour ton aide.

Cordialement.

Hello,

Yes il faut juste copier coller le format sur toutes les autres cellules c’est exactement ça 😊

N’hésite pas si besoin sinon si cest ok tu peux passer le sujet en résolu :)

@+

Bonjour à vous deux !

En fait oui comme vous l'avez deviné il faut créer la MFC sur la première cellule, mais "au lieu de copier / coller" sur les autre cellules vous avez le champ texte "s'applique à" qui vous permet de définir l'ensemble des plages sur lesquels la MFC doit agir.

Ensuite le fonctionnement peut être bon ou altérer en fonction des "£" qui peuvent être mis ou omis dans les formules de la MFC, tout dépend de ce que l'on veut au résultat

@ bientôt

LouReeD

Rechercher des sujets similaires à "vba parcourir plage coloriser condition"