Добрый день! Подскажите пожалуйста, возможно ли имея файл Excel с определенными сроками , использовать макрос для оповещения пользователей посредством MS Outlook об истечении сроков (за несколько дней - за неделю к примеру) ? Т.е. из MS Excel сроки попадают в MS Outlook и далее на эл.почту к пользователю. Файл выложен на сервере.
Заранее спасибо!
Добрый день! Подскажите пожалуйста, возможно ли имея файл Excel с определенными сроками , использовать макрос для оповещения пользователей посредством MS Outlook об истечении сроков (за несколько дней - за неделю к примеру) ? Т.е. из MS Excel сроки попадают в MS Outlook и далее на эл.почту к пользователю. Файл выложен на сервере.
Возможно. Для этого надо будет в файле Еxcel написать некоторый код VBA в процедуру обработки события, скажем, Workbook_Open. А также обязать некоего человека-триггера регулярно открывать рабочую книгу на сервере с заданной периодичностью, например, раз в сутки. Ну или оформить периодическое назначенное задание Windows.
P.S. Облачная альтернатива: таблица Google Sheet, в ней скрипт на таймерном триггере с автоматической рассылкой почты от имени адреса Google Gmail.
Возможно. Для этого надо будет в файле Еxcel написать некоторый код VBA в процедуру обработки события, скажем, Workbook_Open. А также обязать некоего человека-триггера регулярно открывать рабочую книгу на сервере с заданной периодичностью, например, раз в сутки. Ну или оформить периодическое назначенное задание Windows.
P.S. Облачная альтернатива: таблица Google Sheet, в ней скрипт на таймерном триггере с автоматической рассылкой почты от имени адреса Google Gmail.Gustav
Gustav, спасибо за идею по поводу назначенного задания Windows.
Не совсем понятен механизм отправки: файл выложен на сервере. К примеру назначенное задание по открытию запускается с моего сетевого ПК, файл открывается, происходит отправка сообщения с моего клиента MS Outlook ( на моей машине)? Или как?
Гугл не вариант, сеть корпоративная.
Gustav, спасибо за идею по поводу назначенного задания Windows.
Не совсем понятен механизм отправки: файл выложен на сервере. К примеру назначенное задание по открытию запускается с моего сетевого ПК, файл открывается, происходит отправка сообщения с моего клиента MS Outlook ( на моей машине)? Или как?
файл выложен на сервере. К примеру назначенное задание по открытию запускается с моего сетевого ПК, файл открывается, происходит отправка сообщения с моего клиента MS Outlook ( на моей машине)
Если у вас в компании имеется, скажем, SharePoint Server, то можно ещё попробовать использовать его тайм-джобы. В этом случае задание будет крутиться именно на сервере, без участия Вашей машины. Но это уже с вашими сисадминами обсуждайте, я тут не специалист.
файл выложен на сервере. К примеру назначенное задание по открытию запускается с моего сетевого ПК, файл открывается, происходит отправка сообщения с моего клиента MS Outlook ( на моей машине)
Если у вас в компании имеется, скажем, SharePoint Server, то можно ещё попробовать использовать его тайм-джобы. В этом случае задание будет крутиться именно на сервере, без участия Вашей машины. Но это уже с вашими сисадминами обсуждайте, я тут не специалист.Gustav
Примерно в таком виде предполагается использование (см.вложение).
Получается дату и время отправки можно прописать в коде - к примеру если по 1ой позиции срок - 12.05.2016- то за неделю будет - 7.05.2016 - на указанный ящик отправляется письмо. Т.е. 7.05.2016 - либо через SharePoint Server тайм-джобы , либо через назначенное задание? В коде ничего прописывать не нужно?
Спасибо!
Примерно в таком виде предполагается использование (см.вложение).
Получается дату и время отправки можно прописать в коде - к примеру если по 1ой позиции срок - 12.05.2016- то за неделю будет - 7.05.2016 - на указанный ящик отправляется письмо. Т.е. 7.05.2016 - либо через SharePoint Server тайм-джобы , либо через назначенное задание? В коде ничего прописывать не нужно?Rassell89
Смотрите. У Вас должен быть список ("база данных"), в котором есть срок (дата), адрес е-мэйл и текст сообщения (а также какая-либо еще информация). Список хранится на листе Excel - это всё есть.
И еще должна быть программа обработки этого списка, например, макрос Excel. Логика работы этой программы проста: пробежать по всему списку, сравнивая дату (срок) из очередной строки с датой "сегодня" (т.е. с датой работы программы). Если разница между этими датами удовлетворяет заданному условию (в Вашем случае, как я понимаю, это 7 дней или меньше), то для этой строки списка нужно послать е-мэйл - по указанному в строке адресу и с указанным в строке текстом сообщения.
Пока, вроде, всё прозрачно. Есть список и программа его обработки. Дело осталось за малым - выяснить кто и когда будет эту программу запускать. Этим "запускальщиком" может быть человек, который приходит на работу и запускает программу. И пока он пьет кофе и просматривает утренние новости, программа отрабатывает.
Но этим же "запускальщиком" может быть и "железяка" - локальный компьютер пьющего кофе или вообще корпоративный сервер. В случае локального компьютера задачи пьющего кофе изменяются: ему не надо каждый день запускать программу обработки списка, достаточно лишь включить свой компьютер и в назначенное время, скажем, в 11 часов утра, благодаря настроенному заданию программа сама запустится и отработает. Как правило, всё это происходит незаметно, в скрытом окне и не мешает выполнению в этот момент другой работы за компьютером. Если локальный компьютер не выключается сутками, то становится возможным отправка писем даже в выходные и праздники. С другой стороны, соответственно, если человек ушёл в отпуск на 2 недели и погасил свой компутер, то 2 недели ничего и не происходит.
Заисимость от "настроения" человека исчезает, если задание настроено и запускается не на локальной машине, а на централизованном корпоративном сервере, для которого круглосуточная работа - норма.
Само же назначенное задание фактически представляет собой команду операционной системы, включающую имя основной программы (Excel), путь к открываемому файлу и, возможно, имя запускаемого макроса (если не используется автоматическое событие Workbook_Open).
Пока у Вас, как понимаю, есть только список. Поэтому надо написать еще программу (макрос). Если будете затем стартовать ее сами, то этим дело закончится. Если же захотите откреститься от личного ежедневного запуска, то придётся еще немного освоить настройку автоматических таймерных "запускалок".
Смотрите. У Вас должен быть список ("база данных"), в котором есть срок (дата), адрес е-мэйл и текст сообщения (а также какая-либо еще информация). Список хранится на листе Excel - это всё есть.
И еще должна быть программа обработки этого списка, например, макрос Excel. Логика работы этой программы проста: пробежать по всему списку, сравнивая дату (срок) из очередной строки с датой "сегодня" (т.е. с датой работы программы). Если разница между этими датами удовлетворяет заданному условию (в Вашем случае, как я понимаю, это 7 дней или меньше), то для этой строки списка нужно послать е-мэйл - по указанному в строке адресу и с указанным в строке текстом сообщения.
Пока, вроде, всё прозрачно. Есть список и программа его обработки. Дело осталось за малым - выяснить кто и когда будет эту программу запускать. Этим "запускальщиком" может быть человек, который приходит на работу и запускает программу. И пока он пьет кофе и просматривает утренние новости, программа отрабатывает.
Но этим же "запускальщиком" может быть и "железяка" - локальный компьютер пьющего кофе или вообще корпоративный сервер. В случае локального компьютера задачи пьющего кофе изменяются: ему не надо каждый день запускать программу обработки списка, достаточно лишь включить свой компьютер и в назначенное время, скажем, в 11 часов утра, благодаря настроенному заданию программа сама запустится и отработает. Как правило, всё это происходит незаметно, в скрытом окне и не мешает выполнению в этот момент другой работы за компьютером. Если локальный компьютер не выключается сутками, то становится возможным отправка писем даже в выходные и праздники. С другой стороны, соответственно, если человек ушёл в отпуск на 2 недели и погасил свой компутер, то 2 недели ничего и не происходит.
Заисимость от "настроения" человека исчезает, если задание настроено и запускается не на локальной машине, а на централизованном корпоративном сервере, для которого круглосуточная работа - норма.
Само же назначенное задание фактически представляет собой команду операционной системы, включающую имя основной программы (Excel), путь к открываемому файлу и, возможно, имя запускаемого макроса (если не используется автоматическое событие Workbook_Open).
Пока у Вас, как понимаю, есть только список. Поэтому надо написать еще программу (макрос). Если будете затем стартовать ее сами, то этим дело закончится. Если же захотите откреститься от личного ежедневного запуска, то придётся еще немного освоить настройку автоматических таймерных "запускалок".Gustav
Для обычных дат с поиском разности в 7 дней - просто разность СЕГОДНЯ() (в VBA - DATE) и даты из ячейки. РАЗНДАТ целесообразно использовать для выковыривания разности в месяцах, годах, разности в днях без учета месяца (когда 09.05 - 08.03 = 1 день) и прочего нестандарта.
Для обычных дат с поиском разности в 7 дней - просто разность СЕГОДНЯ() (в VBA - DATE) и даты из ячейки. РАЗНДАТ целесообразно использовать для выковыривания разности в месяцах, годах, разности в днях без учета месяца (когда 09.05 - 08.03 = 1 день) и прочего нестандарта._Boroda_