Ниже мы рассмотрим программу в Excel VBA, который устанавливает цвет фона задач, которые по графику на зеленый, и устанавливает цвет фона задач, которые отстают от графика на красный.

Ситуация:

На Лист1 у нас есть три задачи (X, Y, Z). А «1» указывает на то, что задача была завершена. Задача по графику, если «1» есть в каждой колонке, вплоть до текущей даты. Сегодня это 6-Июнь Задачи X и Y по графику. Задача Z отстает от графика (не «1» в ячейке E8).

Tasks on Schedule in Excel VBA

Создание рабочего листа Изменить событие. Код добавлен в Worksheet Change Event будет выполняться Excel VBA при изменении ячейки на листе.

  1. Откройте редактор Visual Basic.

  2. Дважды щелкните на Sheet1 (Лист1) в окне Project Explorer.

  3. Выберите рабочий лист из списка слева раскрывающегося списка. Выберите Изменить справа в раскрывающемся списке.

Worksheet Change Event in Excel VBA

Добавьте следующие строки коды к планшетному Change Event:

  1. Объявите две переменные типа Integer.

Dim i As Integer, j As Integer
  1. Добавьте Do While Loop.

Do While Cells(6 + i, 1).Value <> ""

i = i + 1

Loop

Объяснение: Для я = 0, Excel VBA проверяет задачу X, для я = 1, задача Y и т.д.

Excel VBA оставляет делать во время цикла, когда клетки (6 + я, 1) .Value пуста (не больше задач для проверки).

Добавьте следующие строки кода (на 6, 7 и 8) в Do While Loop.

  1. Инициализировать переменную J со значением 0.

j = 0
  1. Установите цвет фона задачи на зеленый при условии, что задача по расписанию (это не обязательно, конечно).

Cells(6 + i, 1).Interior.ColorIndex = 4
  1. Добавьте еще один Do While Loop.

Do While Cells(4, 2 + j).Value <= Date

If Cells(6 + i, 2 + j).Value = 0 Then Cells(6 + i, 1).Interior.ColorIndex = 3

j = j + 1

Loop

Примечание: функция даты возвращает текущую дату.

Объяснение: Для я = 0, J = 0, Excel VBA проверяет ячейку B6. Для я = 0, J = 1, Excel VBA проверяет ячейку C6 и т.д. Задача по расписанию, если «1» существует в каждом столбце, вплоть до сегодняшнего дня. Если Excel VBA находит «0», он задает цвет фона задачи на красный.

  1. Тест программы. Например, указать, что задача Z 6-Jun завершена. В результате, задача Z автоматически зеленеть.

Tasks on Schedule Result