Cambiar la fuente del color en función de la fecha utilizando VBA en Microsoft Excel
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.
Queremos resaltar los días que son mayores que la fecha actual.
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]