Доброго времени суток всем обитателям форума! Возникла у меня необходимость получения оповещений о приближающихся сроках продления документов у сотрудников. Сложность в том что срок действия документа находиться в тексте. Как я поняла стандартными средствами без использования VBA мне тут не обойтись Как сделать макрос который будет сравнивать текущею дату с датой истечения документа и маркировать ячейку с этим документом, и при этом делать это за 30 дней до истечения документа. БУДУ БЕЗГРАНИЧНО БЛАГОДАРНА ЛЮБОЙ ПОМОЩИ Файл пример прикладываю.
Доброго времени суток всем обитателям форума! Возникла у меня необходимость получения оповещений о приближающихся сроках продления документов у сотрудников. Сложность в том что срок действия документа находиться в тексте. Как я поняла стандартными средствами без использования VBA мне тут не обойтись Как сделать макрос который будет сравнивать текущею дату с датой истечения документа и маркировать ячейку с этим документом, и при этом делать это за 30 дней до истечения документа. БУДУ БЕЗГРАНИЧНО БЛАГОДАРНА ЛЮБОЙ ПОМОЩИ Файл пример прикладываю. Vasiliska
стандартными средствами без использования VBA мне тут не обойтись
Обижаете В условное форматирование вот такая формула
Код
=СЧЁТ(1/(РАЗНДАТ(СЕГОДНЯ();ПСТР(G5;ЕСЛИ(ЕЧИСЛО(ПОИСК("Срок действия: до ??.??.????";ПСТР(G5;СТРОКА($1:$1999);28)));СТРОКА($1:$1999);1999)+18;10);"d")<31))
Посмотрите, я там в столбцах I и W в 4-х ячейках поменял первый, второй и третий сроки на март 2016 года. Ограничение - длина текста в ячейке не больше 1999 символов. Если есть больше, то замените в формуле 1999 на 2999 или сколько там нужно. Но, правда, подтормаживает.
стандартными средствами без использования VBA мне тут не обойтись
Обижаете В условное форматирование вот такая формула
Код
=СЧЁТ(1/(РАЗНДАТ(СЕГОДНЯ();ПСТР(G5;ЕСЛИ(ЕЧИСЛО(ПОИСК("Срок действия: до ??.??.????";ПСТР(G5;СТРОКА($1:$1999);28)));СТРОКА($1:$1999);1999)+18;10);"d")<31))
Посмотрите, я там в столбцах I и W в 4-х ячейках поменял первый, второй и третий сроки на март 2016 года. Ограничение - длина текста в ячейке не больше 1999 символов. Если есть больше, то замените в формуле 1999 на 2999 или сколько там нужно. Но, правда, подтормаживает._Boroda_
Да Ваш открылся, Игорь большое спасибо. Ваш метод дал нужный результат, сейчас попробую внедрить во все нужные мне документы и посмотрю срабатывает ли везде.
Да Ваш открылся, Игорь большое спасибо. Ваш метод дал нужный результат, сейчас попробую внедрить во все нужные мне документы и посмотрю срабатывает ли везде.Vasiliska
Да, сейчас заметил. Ну, значит или разделять всё по отдельным ячейкам, или переписывать текст в формате Срок действия: до ??.??.????, или усложнять формулу.
Да, сейчас заметил. Ну, значит или разделять всё по отдельным ячейкам, или переписывать текст в формате Срок действия: до ??.??.????, или усложнять формулу._Boroda_
Private Sub Workbook_Open() Set r1 = Sheets(1).Range("k4:k" & Sheets(1).Rows.Count) For Each r In r1
If Not IsEmpty(r) Then
i = InStrRev(r, ":") If i > 0 Then J = Right(r, Len(r) - i - 1) If DateDiff("d", Now, CDate(J)) <= 30 Then MsgBox ("Пора на учёбу -" & r.Offset(, -7).Value)) End If End If Next r End Sub
[/vba]
Можно при открытии делать напоминалку [vba]
Код
Private Sub Workbook_Open() Set r1 = Sheets(1).Range("k4:k" & Sheets(1).Rows.Count) For Each r In r1
If Not IsEmpty(r) Then
i = InStrRev(r, ":") If i > 0 Then J = Right(r, Len(r) - i - 1) If DateDiff("d", Now, CDate(J)) <= 30 Then MsgBox ("Пора на учёбу -" & r.Offset(, -7).Value)) End If End If Next r End Sub
Разделять, и не просто по ячейкам, а примерно такая структура должна быть: фио /документ /срок действия/ фио/документ/срок действия/ ... ... Возможно это не так красиво как на вашем листе, но, тогда легко быстро и точно будете обрабатывать таблицу и получать своевременные оповещения. Хоть макросом хоть формулами.
Разделять, и не просто по ячейкам, а примерно такая структура должна быть: фио /документ /срок действия/ фио/документ/срок действия/ ... ... Возможно это не так красиво как на вашем листе, но, тогда легко быстро и точно будете обрабатывать таблицу и получать своевременные оповещения. Хоть макросом хоть формулами.al-Ex
Сообщение отредактировал al-Ex - Среда, 02.03.2016, 20:54