Changer la couleur de la cellule en fonction de la date, Excel VBA

Changer la couleur de la cellule en fonction de la date, Excel VBA

Voici un code détaillé en VBA pour Excel, permettant de changer la couleur d’une cellule en fonction de la date. Ce code prend en compte la date actuelle et applique différentes couleurs selon que la date de la cellule soit passée, soit présente, soit future. 

Étapes à suivre : 

  1. Ouvrir l’éditeur VBA : Appuyez sur Alt + F11 pour ouvrir l’éditeur de VBA dans Excel. 
  2. Créer un module : Dans l’éditeur VBA, allez dans Insertion > Module pour ajouter un module. 
  3. Ajouter le code : Copiez et collez le code VBA suivant dans le module. 

Code VBA 

Sub ChangerCouleurCelluleParDate() 
    ' Déclare les variables nécessaires 
    Dim cell As Range 
    Dim dateCell As Date 
    Dim currentDate As Date 
    ' Récupère la date actuelle 
    currentDate = Date 
    ' Parcourt chaque cellule de la sélection active 
    For Each cell In Selection 
        ' Vérifie si la cellule contient une date 
        If IsDate(cell.Value) Then 
            ' Récupère la date de la cellule 
            dateCell = cell.Value          
            ' Compare la date de la cellule avec la date actuelle 
            If dateCell < currentDate Then 
                ' Si la date est passée, la couleur devient rouge 
                cell.Interior.Color = RGB(255, 0, 0) 
            ElseIf dateCell = currentDate Then 
                ' Si la date est aujourd'hui, la couleur devient jaune 
                cell.Interior.Color = RGB(255, 255, 0) 
           ElseIf dateCell > currentDate Then 
                ' Si la date est future, la couleur devient verte 
                cell.Interior.Color = RGB(0, 255, 0) 
            End If 
        Else 
            ' Si la cellule ne contient pas de date, on ne modifie pas la couleur 
            cell.Interior.ColorIndex = -4142 ' Pas de couleur (aucune modification) 
        End If 
    Next cell 
End Sub

Explication du code : 

1. Déclaration des variables

  • cell : Représente chaque cellule dans la plage sélectionnée (la plage de cellules où la couleur sera changée). 
  • dateCell : Contient la date de la cellule. 
  • currentDate : Contient la date actuelle. 

2. Récupération de la date actuelle

  • currentDate = Date récupère la date du jour. 

3. Boucle sur chaque cellule

  • For Each cell In Selection parcourt chaque cellule dans la plage sélectionnée par l’utilisateur. 
  • If IsDate(cell.Value) vérifie si la cellule contient une date valide. 

4. Changement de couleur selon la date

  • Si la date de la cellule est inférieure à la date actuelle, la cellule devient rouge (RGB(255, 0, 0)). 
  • Si la date de la cellule est égale à la date actuelle, la cellule devient jaune (RGB(255, 255, 0)). 
  • Si la date de la cellule est supérieure à la date actuelle, la cellule devient verte (RGB(0, 255, 0)). 

5. Cellules sans date

  • Si la cellule ne contient pas de date, la couleur est réinitialisée à l’état d’origine avec cell.Interior.ColorIndex = -4142 (ce qui supprime toute couleur de fond). 

Comment utiliser le code : 

  1. Sélectionnez une plage de cellules contenant des dates dans votre feuille Excel. 
  2. Allez dans l’éditeur VBA (Alt + F11), puis dans l’éditeur, exécutez la macro ChangerCouleurCelluleParDate. 
  3. Les cellules seront automatiquement colorées en fonction de la comparaison avec la date actuelle. 

Personnalisation : 

  • Changer les couleurs : Vous pouvez remplacer les valeurs RGB(255, 0, 0) pour la couleur rouge, RGB(255, 255, 0) pour le jaune, et RGB(0, 255, 0) pour le vert par d’autres couleurs en fonction de vos besoins. 
  • Plage de cellules : Vous pouvez appliquer cette macro à une plage spécifique en la modifiant comme suit dans le code : 

For Each cell In Range("A1:A10") ' Remplacez A1:A10 par votre plage 

Cela vous permettra de modifier dynamiquement les couleurs des cellules en fonction de la date dans Excel. 

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x