Dans cet article, nous utiliserons l’événement du classeur pour mettre en évidence des dates supérieures à la date actuelle.

Les données brutes pour cet exemple se composent de l’objectif de vente quotidien et de l’objectif atteint.

ArrowMain

Nous souhaitons mettre en évidence les jours supérieurs à la date actuelle.

ArrowOutput

Explication logique

Dans cet article, nous avons créé deux macros, «SetColor» et «ResetColor».

La macro «SetColor» est utilisée pour mettre en évidence les dates supérieures à la date actuelle.

La macro «ResetColor» est utilisée pour réinitialiser le formatage de la source spécifiée.

Nous avons utilisé deux événements de classeur, un événement d’ouverture de classeur et un classeur avant l’événement de fermeture.

L’événement d’ouverture de classeur est déclenché lorsque le classeur est ouvert. À l’ouverture du classeur, il exécutera automatiquement la macro «SetColor».

Le classeur avant l’événement de fermeture est utilisé pour réinitialiser l’événement associé à l’événement d’ouverture du classeur.

Explication du code

Si IsDate (ActiveCell.Value) et ActiveCell.Value> Date Then Le code ci-dessus est utilisé pour vérifier si la valeur de la cellule est de type de données de date et est supérieure à la date actuelle.

ActiveCell.Interior.Color = RVB (0, 255, 0)

Le code ci-dessus est utilisé pour attribuer une couleur verte à la cellule active.

Définir Source = Range (« A1 », Range (« A1 »). SpecialCells (xlCellTypeLastCell))

Le code ci-dessus est utilisé pour sélectionner toutes les données dans la feuille Excel.

Veuillez suivre ci-dessous pour le code

Option Explicit

Sub SetColor()

If IsDate(ActiveCell.Value) And ActiveCell.Value > Date Then

ActiveCell.Interior.Color = RGB(0, 255, 0)

Else

ActiveCell.Interior.Color = RGB(221, 235, 247)

End If

End Sub

Sub ResetColor()

'Declaring variables

Dim Rng, Source As Range

Dim IntRow As Integer, IntCol As Integer

'Specifying all the cells as source range

Set Source = Range("A1", Range("A1").SpecialCells(xlCellTypeLastCell))

'Looping through all the cells

For Each Rng In Source

'Checking whether cell contains a value

If Not IsEmpty(Rng) Then

'Checking whether cell contain value of date data type

If IsDate(Rng.Value) Then

Rng.Select



'Assigning Green color if value is greater than today date

If DateValue(Rng.Value) > Date Then

ActiveCell.Interior.Color = RGB(0, 255, 0)

Else

ActiveCell.Interior.Color = RGB(221, 235, 247)

End If

End If

End If

Next Rng

End Sub

'Insert below code in ThisWorkbook module

Option Explicit

Private Sub Workbook_Open()

With Worksheets("Main")

'Event fired on entry to worksheet

.OnEntry = "SetColor"

'Event fired on sheet activation

.OnSheetActivate = "ResetColor"



End With

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)



With Worksheets("Main")

.OnEntry = ""

.OnSheetActivate = ""

End With

End Sub

Si vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.

Nous serions ravis de vous entendre, faites-nous savoir comment nous pouvons améliorer notre travail et l’améliorer pour vous. Écrivez-nous à [email protected]