Страницы: 1
RSS
Отправка писем с вложением, Помощь в создании макроса
 
Добрый день, друзья! Прошу тех, кто разбирается, помочь внести корректировки в готовый макрос/либо сделает другую реализацию желаемого:
Есть макрос, который из одного файла "Оплаты" (во вложении) разносит строки по критерию "Контрагент" в разные файлы. Данные файлы потом отправляются контрагентам на почту с определенным текстом, одинаковым для всех. Есть необходимость чтобы после создания макросом файлов он их отправлял сам по адресатам и вставлял данный текст в тело письма. Таблица наименования получаемых файлов, текст письма и "шаблоны" адресов как примеры указаны ниже.
Сначало было отправлять не трудно, но впоследствии планируется добавить большое число контрагентов....
Прилагаю сам файл с макросом внутри.
Рабочая почта: microsoft office professional plus 2013 - Outlook!
Всем, кто сможет мне помочь заранее огромное приогромное спасибо!!!
Наименования   файловАдреса   контрагентов
ООО__Компания__РЭД_example1@mail.ru
ООО__Лидер_ПроМ_example2@mail.ru
ООО__М_Торг_example3@mail.ru
ООО__ПроГрупп_example4@mail.ru
ООО__ПФ__Мебелис_example5@mail.ru
ООО__СТАФ_example6@mail.ru
ООО__ТПК__Промикс_example7@mail.ru
ООО__Транс_Регион_Амур_example8@mail.ru
ООО__ТРИ_М_example9@mail.ru
ООО__Фанпарк_example10@mail.ru
ООО__ФМ_Аленка_example11@mail.ru
ООО_МФ__Арс_Студио_example12@mail.ru
Текст письма:Добрый день, коллеги!
    Данные обработаны.
    Прошу проверить и прислать обновленный файл, либо отписаться что таблица   "без изменений".
 
Было как минимум несколько тем на форуме. На вскидку:
http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=65685
http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=61974
Изменено: bedvit - 18.12.2015 12:00:23
«Бритва Оккама» или «Принцип Калашникова»?
 
Для рассылки вложений, добавьте в последний код (в высланных темах):
Код
sm.Attachments.Add 'Полный путь: Папка & "\" & файл
перед sm.send
Изменено: bedvit - 18.12.2015 12:13:45
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
bedvit написал:
Для рассылки вложений, добавьте в последний код (в высланных темах):
А это будет новый макрос или редактировать мой старый? я просто не силен в VBA....
 
а вы ответ прочитали?
Цитата
bedvit написал: добавьте в последний код (в высланных темах):
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
JeyCi,я не понимаю немного, как макрос понимает какой файл к какому ящику привязывать?
 
Макрос может понять это из
Цитата
alekuvaldin написал:
Таблица наименования получаемых файлов
 
Как отправить письмо из Excel?

там я приводил в том числе пример массовой рассылки. Пути до файлов должны быть полные(включая диск и расширение).
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist,приходящие письма не содержат вложений....
 
Цитата
alekuvaldin написал:
приходящие письма не содержат вложений
ну значит Вы неправильно задаете к ним путь. Код рабочий, проверено не одну сотню раз.
Напишите, как выглядят данные в ячейках, в которых имена вложений?  
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
The_Prist написал:
Напишите, как выглядят данные в ячейках, в которых имена вложений?
Вроде уж по всякому попробовал...
ТемаТекст сообщенияПуть к вложению
Тест1Это тестовое сообщениеC:\Users\avkuvald\Desktop\Рассылка\1.xlsx
Тест2Здесь пробуем на другой адресE:\1.xls
Тест3Этот до кучиC:\Users\avkuvald\Desktop\Рассылка\ООО__Лидер_ПроМ_.xlsx
Изменено: alekuvaldin - 18.12.2015 15:31:57
 
С виду проблем нет. Однако возможно, что Desktop называется Рабочий стол, а папка Users - Пользователи. И в коде надо указать именно так. Так же возможен вариант, что антивирус блокирует отправку файлов или почтовый сервер не пропускает вложения, размер которых больше определенного лимита.
Но по опыту знаю, что явно где-то путь указан неверно.
Попробуйте перед строкой
Код
.to = Cells(lr, 1) 'адрес получателя

записать такие:
Код
If Dir(Cells(lr, 4),16) = "" then
    msgbox "Файл не найден: " & Cells(lr, 4),vbinformation
end if

так узнаете - видит ли код передаваемые ему пути файлов или нет. Если не видит - значит где-то что-то не так указано.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
The_Prist написал:
С виду проблем нет.
Переимновал-результат, тот же(. Насчет антивируса не могу сказать...вручную то все же отправляется...
 
Попробуйте вставить строки в код, которые я привел в предыдущем сообщении. Как вообще пути к файлами и их имена попадают в ячейки? Как Вы их туда записываете?

P.S. Цитировать каждое сообщение совсем не обязательно. Тем более в последнем Вашем сообщении цитата и Ваш ответ не вяжутся.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
The_Prist написал:
Попробуйте вставить строки в код, которые
[img]file:///C:/Users/avkuvald/Desktop/%D0%91%D0%B5%D0%B7%D1%8B%D0%BC%D1%8F%D0%BD%D0%BD%D1%8B%D0%B9.png[/img]Что не так?
 
Видимо, лишние пробелы с форума скопировались. Удалите пробелы до и после скопированных строк.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist, да все поправил, ошибок не выдает, но письма без вложений
Путь к   вложению
E:\Новая папка\1.xlsx
E:\Новая папка\OOO__Lider_ProM_.xlsx
E:\Новая папка\ООО__Лидер_ПроМ_.xlsx
Option Explicit

Sub Send_Mail_Mass()
   Dim objOutlookApp As Object, objMail As Object
   Dim lr As Long, lLastR As Long

   Application.ScreenUpdating = False
   On Error Resume Next
   Set objOutlookApp = CreateObject("Outlook.Application")
   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
If Dir(Cells(lr, 4), 16) = "" Then
msgbox "Файл не найден: " & Cells(lr, 4), vbInformation
End If
           .To = Cells(lr, 1) 'адрес получателя
           .Subject = Cells(lr, 2) 'тема сообщения
           .Body = Cells(lr, 3) 'текст сообщения
           .Attachments.Add Cells(lr, 4)
           .Send 'Display, если необходимо просмотреть сообщение, а не отправлять без просмотра
       End With
   Next lr

   Set objOutlookApp = Nothing: Set objMail = Nothing
   Application.ScreenUpdating = True
End Sub
 
.Attachments.Add Cells(lr, 4) ... значит в 4-м столбе (со второй строки?) должны быть ссылки на файл, к примеру "E:\Новая папка\1.xlsx", они там есть (и сами фалы по этому пути)?
«Бритва Оккама» или «Принцип Калашникова»?
 
The_Prist, черт меня дернул почитать комментарии на том сайте что вы прислали))) и  в последнем комментарии встретил ту же проблему...и сделал как написал Илья. Так как писал, что не разбираюсь в VBA? то не знаю что значит это дополнение: .Attachments.Add Cells(lr, 4).Value. Но все заработало!!! все отправляется как надо!
Спасибо Вам и всем остальным за недюженное терпение и помощь в решении наших проблем!!!!!
:) :) :)
 
Точно. Спасибо. Поправил в статье.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Читают тему
Наверх