En este artículo, usaremos el evento del libro de trabajo para resaltar fechas mayores que la fecha actual.

Los datos brutos para este ejemplo consisten en el objetivo de ventas diarias y el objetivo alcanzado.

ArrowMain

Queremos resaltar los días que son mayores que la fecha actual.

ArrowOutput

Explicación lógica

En este artículo hemos creado dos macros, «SetColor» y «ResetColor».

La macro «SetColor» se utiliza para resaltar fechas que son mayores que la fecha actual.

La macro «ResetColor» se utiliza para restablecer el formato de la fuente especificada.

Hemos utilizado dos eventos de libro de trabajo, un evento de libro de trabajo abierto y un libro de trabajo antes del evento de cierre.

El evento de apertura del libro se activa cuando se abre el libro. Al abrir el libro de trabajo, se ejecutará automáticamente la macro «SetColor».

El libro de trabajo antes del evento de cierre se usa para restablecer el evento asociado con el evento de apertura del libro de trabajo.

Explicación del código

If IsDate (ActiveCell.Value) And ActiveCell.Value> Date Then El código anterior se usa para verificar si el valor en la celda es del tipo de datos de fecha y es mayor que la fecha actual.

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

El código anterior se usa para asignar color verde a la celda activa.

Establecer origen = Rango («A1», Rango («A1»). SpecialCells (xlCellTypeLastCell))

El código anterior se utiliza para seleccionar todos los datos dentro de la hoja de Excel.

Siga el código a continuación

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 te gustó este blog, compártelo con tus amigos en Facebook y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]