Якщо вам потрібно, щоб одразу після відкриття книги Excel комірки в яких дата співпадає з сьогоднішньою підсвічувалися певним кольором, то зробити це можна двома способами:
- За допомогою Умовного форматування.
- За допомогою VBA.
Таке рішення може знадобитися вам, якщо є таблиця Excel з днями народження людей і ви не хочете пропустити цей день. Або, можливо у вас є певні важливі дати з подіями і потрібно щоб вони підсвічувалися в той день, коли ця подія сталася.
Як на мене, то найпростіше визначити поточну дату в комірках таблиці Excel використовуючи Умовне форматування. Але VBA дає нам трішки більше можливостей.
Визначення поточної дати за допомогою Умовного форматування
- Відкрийте Книгу Excel.
- Виділіть діапазон комірок в яких потрібно буде шукати поточну дату.
- На вкладці Основне у блоці команд Стилі оберіть Умовне форматування → Створити правило.
- У вікні що з’явилося виберіть Використовувати формулу для визначення клітинок для форматування.
- В поле Форматувати значення, для яких ця формула має значення ІСТИНА введіть =TEXT(B2;"d m")=TEXT(NOW();"d m"). Цією формулою ми порівнюємо дати без урахування року. Для цього, за допомогою функції TEXT, ми перетворюємо значення комірки B2 у текстовий формат, що містить тільки день (d) і місяць (m). Те саме ми робимо і з поточною датою, яку отримуємо за допомогою функції NOW() – перетворюємо значення у текстовий формат, що містить тільки день і місяць. Після цього, ми порівнюємо текстові результати.
- Натисніть на кнопку Форматувати…
- У вікні що з’явилося перейдіть на вкладку Заливка і оберіть колір заливки який матиме та комірка в якій дата співпадає із сьогоднішньою.
- Натисніть OK.
- Натисніть OK.
Тепер, кожного разу, коли ви будете відкривати Книгу Excel, у вказаному вами діапазоні комірок буде відбуватися порівняння значення комірки з поточною датою. Якщо вони співпадатимуть, то комірка буде зафарбована у той, колір який ви обрали.
Пошук поточної дати в комірках за допомогою VBA
Щоб реалізувати аналогічне завдання з використанням VBA, можна створити макрос, який застосовуватиме умовне форматування до комірок з датами, що збігаються з поточною.
Для цього:
- Відкрийте Книгу Excel.
- Зробіть клік правою кнопкою миші по назві аркуша (в моєму випадку це Аркуш1) і у меню що з’явилося оберіть Перегляд коду. Або натисніть Alt+F11.
- У вікні Проектів VBA клацніть правою кнопкою миші по ЦяКнига (ThisWorkbook) і оберіть пункт View Code.
- У вікно редагування коду вставте наведений нижче код і обов’язково збережіть файл як Книга Excel із підтримкою макросів.
Код VBA для пошуку і порівняння дати
Private Sub Workbook_Open()
Dim ws As Worksheet
Dim rng As Range
Dim cell As Range
Dim todayDayMonth As String
' Вказуємо робочий лист, де потрібно перевіряти дати
Set ws = ThisWorkbook.Sheets("Аркуш1") ' Замініть "Аркуш1" на назву вашого аркуша
' Встановлюємо діапазон, який потрібно перевірити
Set rng = ws.Range("B2:B100") ' Замініть на ваш діапазон комірок
' Отримуємо поточний день і місяць у форматі "d m"
todayDayMonth = Format(Now, "d m")
' Перебираємо комірки в діапазоні
For Each cell In rng
If Not IsEmpty(cell.Value) Then
If Format(cell.Value, "d m") = todayDayMonth Then
' Встановлюємо фон комірки
cell.Interior.Color = RGB(255, 255, 0) ' Жовтий фон
Else
' Знімаємо виділення (колір фону), якщо дата не збігається
cell.Interior.Color = xlNone
End If
End If
Next cell
End Sub
Тепер, кожного разу, коли ви будете відкривати дану книгу, відбуватиметься порівняння значень в заданому вами діапазоні комірок із поточною датою. І якщо значення будуть співпадати, то комірка зафарбовуватиметься в потрібний вам колір.
