Все работает ! У меня появилась по-сложнее задачка: Примечания стоят в таблицах документа Word, нужно выгруженной таблице (как в предыдущем примере) добавить все поля из той строки таблицы, где стоит примечание. В самом документе может быть множество других (не нужных нам) таблиц. Нашел, что-то подобное (https://www.cyberforum.ru/vba/thread2540854.html), но не создается Excel и выгружается только АБЗАЦ, где стоит Примечание.
Господин vikttur, в этом то и фишка макроса, что есть диапазон обратного отсчета и на основе его должна строится рассылка нужному Исполнителю в нужное время и все это называется условно "Напоминалка"
Неужели нельзя взять код:
Код
Sub SendMail() Dim OutApp As Object
Dim OutMail As Object
Dim cell As Range
Application.ScreenUpdating = False
Set OutApp = CreateObject("Outlook.Application") 'запускаем Outlook в скрытом режиме
OutApp.Session.Logon
On Error GoTo cleanup 'если не запустился - выходим
Set OutMail = OutApp.CreateItem(0) 'создаем новое сообщение
On Error Resume Next
'заполняем поля сообщения
With OutMail
.To = Range("A1").Value
.Subject = Range("A2").Value
.Body = Range("A3").Value
.Attachments.Add Range("A4").Value
'команду Send можно заменить на Display, чтобы посмотреть сообщение перед отправкой
.Send
End With
On Error GoTo 0
Set OutMail = Nothing
cleanup:
Set OutApp = Nothing
Application.ScreenUpdating = True
End Sub
или
Код
Sub Send_Mail_Mass() Dim objOutlookApp As Object, objMail As Object
Dim sTo As String, sSubject As String, sBody As String, sAttachment As String
Dim lr As Long, lLastR As Long
Application.ScreenUpdating = False
On Error Resume Next
'пробуем подключиться к Outlook, если он уже открыт
Set objOutlookApp = GetObject(, "Outlook.Application")
Err.Clear 'Outlook закрыт, очищаем ошибку
If objOutlookApp Is Nothing Then
Set objOutlookApp = CreateObject("Outlook.Application")
End If
'произошла ошибка создания объекта - выход
If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub
objOutlookApp.Session.Logon
lLastR = Cells(Rows.Count, 1).End(xlUp).Row
'цикл от второй строки(начало данных с адресами) до последней ячейки таблицы
For lr = 2 To lLastR
Set objMail = objOutlookApp.CreateItem(0) 'создаем новое сообщение
'создаем сообщение
With objMail
.to = Cells(lr, 1).Value 'адрес получателя
.Subject = Cells(lr, 2).Value 'тема сообщения
.Body = Cells(lr, 3).Value 'текст сообщения
.Attachments.Add Cells(lr, 4).Value
.Send 'Display, если необходимо просмотреть сообщение, а не отправлять без просмотра
End With
Next lr
Set objOutlookApp = Nothing: Set objMail = Nothing
Application.ScreenUpdating = True
End Sub
и перед ним вставить оператор IF на проверку условия, если да, то рассылка начинает формировать, а если нет, то ничего делать не надо ?
Спасибо за отклик ! http://www.planetaexcel.ru/techniques/13/48/ - эта полная ссылка на прием "Отправка книги или листа по электронной почте", в нем есть "Способ 3. Универсальный макрос". Этот способ нравится тем, что в нем представлено формирование почтовой рассылки нескольким адресатам сразу. Господин JeyCi предоставил ссылку на Уведомление за 2 месяца до истечения срока действия (без рассылки), но в этом примере вылетает Msgbox и рассылки не происходит. Я думаю многим из нас пригодится инструмент, когда есть поставленные сроки и исполнители закрепленные за ними, поэтому тут необходимо сделать алгоритм некой "Рассылки-напоминалки с условием по сроку" Принцип работы макроса: 1. Сканирование столбца "Осталось дней до" на предмет истечения сроков (например, 30 дней > Х > 25 дней). Я так подозреваю, это делается помощью оператора IF или CASE 2. При соблюдении условий п. 1, начинается массовая рассылка через Outlook тем исполнителям (адресатам) у кого "горят сроки". Это как раз тот "Способ №3" 3. Эта схема должна запускать одновременно с запуском файла, кнопка тут бесполезна (можно забыть о ней в повседневной текучке)
Сразу скажу, что я особо не касался VBA (не было поводов), но "жизнь заставила" обратится к Вам , Форумчанам - специалистам в мире Excel, за советом. Еще раз хочу отметить на полезность данного макроса, т.к. в офисной работе очень часто приходится контролировать сроки за себя и за других.
Добрый день ! Подскажите пожалуйста, способом "Способом №3" (http://www.planetaexcel.ru/techniques/13/48/) можно решить следующую задачу ? Имеется перечень контактов, также справа имеется столбец с числами (например, кол-во дней до определенного события), необходимо: 1. Просмотр диапазона с числами на условие достижение числами определенного значения (например, 30 > x > 25)