В Excel мне нужно оценить, осталось ли 5 дней от текущей даты до даты, введенной в ячейку, и если это правда, закрасьте строку красным и сгенерируйте предупреждающее сообщение, информирующее об этой ситуации.

Например: сегодня 25/05/2017

Столбец имеет значения:

06.01.2017 03.06.2017 29.06.2017

Поэтому программа должна оповещать о датах 01.06.2017 и 29.06.2017. Необязательно, чтобы предупреждающее сообщение содержало каждую дату; если осталось 2 ячейки <5 дней, оно генерирует 2 предупреждающих сообщения.

Я буду признателен за любую помощь, я не знаю, как программировать на VBA, и это немного сложно для меня! Спасибо.

-2
frusciante 27 Май 2017 в 21:01

2 ответа

Лучший ответ

Для рисования самый простой способ - использовать условное форматирование. Добавьте новое правило с формулой:

=AND(A1-Today()<5;A1>=Today())

Где ваши даты будут в столбце А.

Оповещение о каждой дате, которая составляет менее 5 дней с сегодняшнего дня, может быть выполнено с помощью:

For Each cell In Range("A4:A6")
    If cell.Value - Now < 5 Then
        MsgBox "Row " & cell.Row & " has less than 5 days"
        ' optional alterative to conditional formatting for painting
        cell.Interior.Color = RGB(255, 0, 0)
    End If
Next
0
MrDogme 28 Май 2017 в 10:09

Для вставки в ThisWorkbook

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

With ActiveCell
    If IsDate(.Value) Then
        If .Value - Now < 5 Then
            If .Value >= Now Then
                MsgBox ("Tic-Tac Tic-Tac... time come soon!")
                Range(.Row & ":" & .Row).Select
                With Selection.Interior
                    .Color = RGB(255, 0, 0)
                End With
            End If
        End If
    End If
End With

End Sub
0
MrDogme 28 Май 2017 в 06:18