Mettre en évidence les dates d'échéance - Conseils Excel

Ed a posé la question Excel de cette semaine.

J'ai besoin d'une simple macro Excel qui recherchera - disons - la colonne C et mettra en évidence en rouge les cellules contenant la date du jour (date actuelle) et surlignera en jaune toute autre cellule de la colonne qui se trouve dans 15 jours à partir de la date d'aujourd'hui?

Les utilisateurs d'Excel 97 ou d'Excel 2000 peuvent profiter de la nouvelle option de mise en forme conditionnelle. Voyons d'abord comment faire cela manuellement sans macro.

  • Accédez à la cellule C1.
  • Dans le menu, choisissez Format, Format conditionnel
  • Dans la partie gauche de la boîte de dialogue, modifiez la liste déroulante pour lire "La formule est"
  • Dans la partie droite de la boîte de dialogue, entrez: =INT(C1)=TODAY()
Définition du formatage conditionnel
  • Cliquez sur format, cliquez sur Modèles, choisissez Rouge. Cliquez sur OK
  • Cliquez sur Ajouter…
  • Dans la partie gauche de la boîte de dialogue, modifiez la liste déroulante pour lire "La formule est"
  • Dans la partie droite de la boîte de dialogue, entrez: =AND(INT(C1)>TODAY(),(INT(C1)-TODAY())<16)
  • Cliquez sur Format, cliquez sur Patterns, choisissez Yellow. Cliquez sur OK.
  • Cliquez sur OK pour terminer l'attribution de ce format conditionnel à la cellule C1.
Résultat du format conditionnel

Si le format est entré correctement, la cellule C1 passera au rouge si elle contient la date du jour et au jaune si la date est dans les 15 prochaines semaines. La fonction AUJOURD'HUI () dans le format garantira que si nous ouvrons le classeur un autre jour, elle mettra en évidence en rouge les cellules pour ce jour particulier.

Vous pouvez maintenant copier la cellule C1, mettre en évidence toutes les données de la colonne C et faire Edition> Collage spécial> Formats> OK pour appliquer ce format à chaque cellule de la colonne C.

La macro suivante automatisera l'attribution du format conditionnel:

Sub Macro2() Range("C1").Select Selection.FormatConditions.Delete Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _ "=INT(C1)=TODAY()" Selection.FormatConditions(1).Interior.ColorIndex = 3 Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _ "=AND(INT(C1)>TODAY(),(INT(C1)-TODAY())<16)" Selection.FormatConditions(2).Interior.ColorIndex = 6 Selection.Copy FinalRow = Range("C15000").End(xlUp).Row Range("C2:C" & FinalRow).Select Selection.PasteSpecial Paste:=xlPasteFormats End Sub

Pour les utilisateurs d'Excel 95, vous n'avez pas de mise en forme conditionnelle, mais vous pouvez utiliser une macro comme celle-ci:

Sub Macro95() ThisDate = Date FinalRow = Range("C15000").End(xlUp).Row For x = 1 To FinalRow ThisCell = Int(Range("C" & x).Value) If ThisCell = ThisDate Then Range("C" & x).Interior.ColorIndex = 3 Else DaysFromNow = ThisCell - ThisDate If DaysFromNow> 0 And DaysFromNow < 16 Then Range("C" & x).Interior.ColorIndex = 6 End If End If Next x End Sub

La fonction de formule de la fonction de format conditionnel est très puissante et vous permettra de mettre en évidence les cellules qui correspondent à divers critères.

Articles intéressants...