Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Сравнение даты и оповещение - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сравнение даты и оповещение (Макросы/Sub)
Сравнение даты и оповещение
Vasiliska Дата: Среда, 02.03.2016, 14:09 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Доброго времени суток всем обитателям форума! Возникла у меня необходимость получения оповещений о приближающихся сроках продления документов у сотрудников. Сложность в том что срок действия документа находиться в тексте. Как я поняла стандартными средствами без использования VBA мне тут не обойтись :( Как сделать макрос который будет сравнивать текущею дату с датой истечения документа и маркировать ячейку с этим документом, и при этом делать это за 30 дней до истечения документа.
БУДУ БЕЗГРАНИЧНО БЛАГОДАРНА ЛЮБОЙ ПОМОЩИ
Файл пример прикладываю. girl_wink
К сообщению приложен файл: 0222074.xlsx(43Kb)
 
Ответить
СообщениеДоброго времени суток всем обитателям форума! Возникла у меня необходимость получения оповещений о приближающихся сроках продления документов у сотрудников. Сложность в том что срок действия документа находиться в тексте. Как я поняла стандартными средствами без использования VBA мне тут не обойтись :( Как сделать макрос который будет сравнивать текущею дату с датой истечения документа и маркировать ячейку с этим документом, и при этом делать это за 30 дней до истечения документа.
БУДУ БЕЗГРАНИЧНО БЛАГОДАРНА ЛЮБОЙ ПОМОЩИ
Файл пример прикладываю. girl_wink

Автор - Vasiliska
Дата добавления - 02.03.2016 в 14:09
китин Дата: Среда, 02.03.2016, 14:25 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3454
Репутация: 549 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
вот такие костылики без макроса. Больше ничего в голову не приходит , звиняйте.формула в УФ
Код
=--ПРАВБ(J57;10)<=СЕГОДНЯ()+30
К сообщению приложен файл: Vasiliska.xlsx(49Kb)


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538
 
Ответить
Сообщениевот такие костылики без макроса. Больше ничего в голову не приходит , звиняйте.формула в УФ
Код
=--ПРАВБ(J57;10)<=СЕГОДНЯ()+30

Автор - китин
Дата добавления - 02.03.2016 в 14:25
_Boroda_ Дата: Среда, 02.03.2016, 14:39 | Сообщение № 3
Группа: Модераторы
Ранг: Экселист
Сообщений: 9379
Репутация: 3950 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
стандартными средствами без использования VBA мне тут не обойтись

Обижаете
В условное форматирование вот такая формула
Код
=СЧЁТ(1/(РАЗНДАТ(СЕГОДНЯ();ПСТР(G5;ЕСЛИ(ЕЧИСЛО(ПОИСК("Срок действия: до ??.??.????";ПСТР(G5;СТРОКА($1:$1999);28)));СТРОКА($1:$1999);1999)+18;10);"d")<31))

Посмотрите, я там в столбцах I и W в 4-х ячейках поменял первый, второй и третий сроки на март 2016 года.
Ограничение - длина текста в ячейке не больше 1999 символов. Если есть больше, то замените в формуле 1999 на 2999 или сколько там нужно.
Но, правда, подтормаживает.
К сообщению приложен файл: 0222074_3.7z(43Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
стандартными средствами без использования VBA мне тут не обойтись

Обижаете
В условное форматирование вот такая формула
Код
=СЧЁТ(1/(РАЗНДАТ(СЕГОДНЯ();ПСТР(G5;ЕСЛИ(ЕЧИСЛО(ПОИСК("Срок действия: до ??.??.????";ПСТР(G5;СТРОКА($1:$1999);28)));СТРОКА($1:$1999);1999)+18;10);"d")<31))

Посмотрите, я там в столбцах I и W в 4-х ячейках поменял первый, второй и третий сроки на март 2016 года.
Ограничение - длина текста в ячейке не больше 1999 символов. Если есть больше, то замените в формуле 1999 на 2999 или сколько там нужно.
Но, правда, подтормаживает.

Автор - _Boroda_
Дата добавления - 02.03.2016 в 14:39
китин Дата: Среда, 02.03.2016, 14:46 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3454
Репутация: 549 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
Саш а ведь там есть типа :"Дата следующей проверки"


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538
 
Ответить
СообщениеСаш а ведь там есть типа :"Дата следующей проверки"

Автор - китин
Дата добавления - 02.03.2016 в 14:46
Vasiliska Дата: Среда, 02.03.2016, 14:48 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
К сообщению приложен файл: 0222074_1.xlsx(46Kb)

Большое спасибо! Но у меня файл не открывает, говорит поврежден...
 
Ответить
Сообщение
К сообщению приложен файл: 0222074_1.xlsx(46Kb)

Большое спасибо! Но у меня файл не открывает, говорит поврежден...

Автор - Vasiliska
Дата добавления - 02.03.2016 в 14:48
китин Дата: Среда, 02.03.2016, 14:48 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3454
Репутация: 549 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
а мой открылся?


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538
 
Ответить
Сообщениеа мой открылся?

Автор - китин
Дата добавления - 02.03.2016 в 14:48
Vasiliska Дата: Среда, 02.03.2016, 14:53 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
а мой открылся?

Да Ваш открылся, Игорь большое спасибо. Ваш метод дал нужный результат, сейчас попробую внедрить во все нужные мне документы и посмотрю срабатывает ли везде.
 
Ответить
Сообщение
а мой открылся?

Да Ваш открылся, Игорь большое спасибо. Ваш метод дал нужный результат, сейчас попробую внедрить во все нужные мне документы и посмотрю срабатывает ли везде.

Автор - Vasiliska
Дата добавления - 02.03.2016 в 14:53
китин Дата: Среда, 02.03.2016, 14:56 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3454
Репутация: 549 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
мой не сработает в тех ячейках,где два и больше документа. Вернее сработает только на последнем. Потому про костылики и написал


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538
 
Ответить
Сообщениемой не сработает в тех ячейках,где два и больше документа. Вернее сработает только на последнем. Потому про костылики и написал

Автор - китин
Дата добавления - 02.03.2016 в 14:56
_Boroda_ Дата: Среда, 02.03.2016, 15:00 | Сообщение № 9
Группа: Модераторы
Ранг: Экселист
Сообщений: 9379
Репутация: 3950 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
файл не открывает, говорит поврежден...

Перевложил в свое сообщение выше. В архив его засунул. Почему-то при сохранении файла не форум он (файл) портился.
а ведь там есть типа :"Дата следующей проверки"

Да, сейчас заметил. Ну, значит или разделять всё по отдельным ячейкам, или переписывать текст в формате Срок действия: до ??.??.????, или усложнять формулу.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
файл не открывает, говорит поврежден...

Перевложил в свое сообщение выше. В архив его засунул. Почему-то при сохранении файла не форум он (файл) портился.
а ведь там есть типа :"Дата следующей проверки"

Да, сейчас заметил. Ну, значит или разделять всё по отдельным ячейкам, или переписывать текст в формате Срок действия: до ??.??.????, или усложнять формулу.

Автор - _Boroda_
Дата добавления - 02.03.2016 в 15:00
Vasiliska Дата: Среда, 02.03.2016, 15:00 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
мой не сработает в тех ячейках,где два и больше документа

Да я это я заметила, самый простой вариант придется разделять все документы по ячейкам.
 
Ответить
Сообщение
мой не сработает в тех ячейках,где два и больше документа

Да я это я заметила, самый простой вариант придется разделять все документы по ячейкам.

Автор - Vasiliska
Дата добавления - 02.03.2016 в 15:00
dima_dan2012 Дата: Среда, 02.03.2016, 16:19 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 36
Репутация: 7 ±
Замечаний: 0% ±

Excel 2003,2007
Можно при открытии делать напоминалку
[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

[/vba]
К сообщению приложен файл: vas.xlsm(57Kb)


Сообщение отредактировал dima_dan2012 - Четверг, 03.03.2016, 08:14
 
Ответить
СообщениеМожно при открытии делать напоминалку
[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

[/vba]

Автор - dima_dan2012
Дата добавления - 02.03.2016 в 16:19
al-Ex Дата: Среда, 02.03.2016, 20:38 | Сообщение № 12
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 149
Репутация: 55 ±
Замечаний: 0% ±

Excel 2010
разделять все документы по ячейкам.

Разделять, и не просто по ячейкам, а примерно такая структура должна быть:
фио /документ /срок действия/
фио/документ/срок действия/
...
...
Возможно это не так красиво как на вашем листе, но,
тогда легко быстро и точно будете обрабатывать таблицу и получать своевременные оповещения.
Хоть макросом хоть формулами.


Сообщение отредактировал al-Ex - Среда, 02.03.2016, 20:54
 
Ответить
Сообщение
разделять все документы по ячейкам.

Разделять, и не просто по ячейкам, а примерно такая структура должна быть:
фио /документ /срок действия/
фио/документ/срок действия/
...
...
Возможно это не так красиво как на вашем листе, но,
тогда легко быстро и точно будете обрабатывать таблицу и получать своевременные оповещения.
Хоть макросом хоть формулами.

Автор - al-Ex
Дата добавления - 02.03.2016 в 20:38
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сравнение даты и оповещение (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!