In questo articolo, useremo l’evento della cartella di lavoro per evidenziare le date maggiori della data attuale.

I dati grezzi per questo esempio sono costituiti dall’obiettivo di vendita giornaliero e dall’obiettivo raggiunto.

ArrowMain

Vogliamo evidenziare i giorni che sono maggiori della data attuale.

ArrowOutput

Spiegazione logica

In questo articolo abbiamo creato due macro, “SetColor” e “ResetColor”.

La macro “SetColor” viene utilizzata per evidenziare le date che sono maggiori della data attuale.

La macro “ResetColor” viene utilizzata per ripristinare la formattazione dell’origine specificata.

Abbiamo utilizzato due eventi della cartella di lavoro, l’evento di apertura della cartella di lavoro e la cartella di lavoro prima dell’evento di chiusura.

L’evento di apertura della cartella di lavoro viene generato all’apertura della cartella di lavoro. All’apertura della cartella di lavoro, verrà eseguita automaticamente la macro “SetColor”.

L’evento Cartella di lavoro prima della chiusura viene utilizzato per reimpostare l’evento associato all’evento di apertura della cartella di lavoro.

Spiegazione del codice

If IsDate (ActiveCell.Value) And ActiveCell.Value> Date Then Il codice precedente viene utilizzato per verificare se il valore nella cella è del tipo di dati data ed è maggiore della data attuale.

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

Il codice sopra viene utilizzato per assegnare il colore verde alla cella attiva.

Imposta sorgente = intervallo (“A1”, intervallo (“A1”). SpecialCells (xlCellTypeLastCell))

Il codice sopra viene utilizzato per selezionare tutti i dati all’interno del foglio Excel.

Segui sotto per il codice

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

Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.

Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]