Mise en enforme conditionnelle VBA avec boucle

Bonjour je débute en VBA et voici mon soucis : je veux avoir une couleur bleu dans les cellules pour des dates inferieures ou égales à une date précise (EX: une couleur bleu dans A2 si A2 est inferieure ou égale à la date de A1-2)

voici ce que j'ai eu avec l'enregistrement de la macro:

Sub ALERT()
Range("A3:A23").FormatConditions.Add Type:=xlCellValue, Operator:=xlLessEqual, _
Formula1:="=$A$1-2"
Range("A3:A23").FormatConditions(Range("A3:A23").FormatConditions.Count).SetFirstPriority
With Range("A3:A23").FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 15773696
.TintAndShade = 0
End With
Range("A3:A23").FormatConditions(1).StopIfTrue = False

cela fonction bien mais le problème est que je dois réécrire la macro pour les colonnes B,C,D etc...

ce qui sera très long et interminable. j'ai besoin d'aide pour écrire la boucle

merci a vous

Bonjour,

Il n'est pas nécessaire de faire une boucle, si j'ai bien compris en ligne 1 de chaque colonne vous avez une date de référence. Dans ce cas, placez vous en A3 > ouvrez le menu de mise en forme conditionnelle > Nouvelle règle > Utiliser une formule et inscrivez y :

=A3<=(A$1-2)

Sélectionnez le remplissage que vous souhaitez puis étendez la plage d'application sur l'ensemble de vos colonnes puis Appliquer :

image

La gestion des $ permet de ne pas démultiplier une même mise en forme conditionnelle., lorsque vous vous basez sur A alors la cellule de comparaison est A1, si c'est B alors B1 etc ... D'où l'absence de $ devant la colonne, cela permet de décaler les colonnes en fonction d'où on se trouve.

Cdlt,

merci beaucoup ça fonctionne très bien le truc c'était avec les $

Rechercher des sujets similaires à "mise enforme conditionnelle vba boucle"