Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Макрос. Массовая рассылка писем с таблицей в теле письма и вложением
 
Уважаемые Знатоки!
Долго и упорно копалась в интеренете и так и не смогла приладить к своему файлу макрос по написанию писем.

Итак задача:
на листе emails указаны имена менеджеров, email адреса и тема письма, которая должна генериться
В теле письма должен быть текст "Добрый день! во вложении отчет. Просьба обратить внимание на .. {таблица с листа с именем менеджера}. Подпись" + Вложенный файл
Путь к файлам заложен другим макросом
Код
 sPath = ThisWorkbook.Path & "\" & RepPeriod & "\"
.SaveAs sPath & "BDF Report_" & RepPeriod & "_" & Manager & ".xlsx"
Таблицы по каждому менеджеру разносятся на отдельные листы. Имена всегда уникальны.

Помогите, пожалуйста!  :cry:  Бьюсь 2й день!
 
Мария -, Вы сначала отпишитесь в своих старых темах, а уже после этого создавайте новые.
 
посмотрите тут может , что найдете.
"Все гениальное просто, а все простое гениально!!!"
 
Я смотрела. Не понимаю, как таблицу в письмо вставить
 
Так там же написано в коде как вставить. Файл скачайте и прогоните код с помощью "F8" и увидите, как происходит создание письма и вставка таблицы.
Можно сделать даже без разбития данных, по отдельным листам, но это уже как кому удобней.
Изменено: Nordheim - 20 Май 2019 08:20:36
"Все гениальное просто, а все простое гениально!!!"
 
Nordheim, простите, у меня улетела подписка на эту тему, и ваш ответ я не увидела :(
 
Nordheim, не выходит :( я не могу разобраться с таблицей. Мне же нужна не вся таблица, а в письмо менеджера только его собственную таблицу.

помогите, пожалуйста, написать все правильно
 
я сбилась с ног. но он постоянно ругается на это:
Помогите, пожалуйста!
Код
    sManager = rngEntry.Offset(0, -2)

Set rDataR = ThisWorkbook.Sheets(sManager).Cells(Rows.count, 1).End(xlUp).Row
    sTblBody = ConvertRngToHTM(rDataR)
    sBody = Replace(sBody, "{TABLE}", sTblBody)
 
Попробуйте заменить вашей таблицей таблицу в файле Дмитрия, и диапазон укажите равный вашей таблице все ли будет работать нормально.
"Все гениальное просто, а все простое гениально!!!"
 
Попробуйте, может так.
Изменено: Nordheim - 21 Май 2019 11:42:39
"Все гениальное просто, а все простое гениально!!!"
 
Nordheim, не пойму, ругается вот на эту строку
Код
        Set rng = ThisWorkbook.Worksheets(arr(i, 1)).UsedRange
выдет такую ошибку :( картинки ошибок вложила.
При этом он 1е письмо создает, а вот последующие нет

и еще вопрос, как внести текст в письмо помимо таблицы?
просто вписать текст например в какую-то ячейку и добавить между этими строками например .Body = Range("K1") ?
Код
            .Subject = arr(i, 2)
            .BodyFormat = 2  'olFormatHTML - ôîðìàò HTML
Capture.PNG (3.6 КБ)
Capture2.PNG (5.46 КБ)
Изменено: Мария - - 21 Май 2019 15:51:46
 
Запускаю прикрепленный файл, все работает, может у вас есть пустой лист?
"Все гениальное просто, а все простое гениально!!!"
 
Nordheim, очень интересно. я отправила файл, в котором и запускала  8-0  
 
Nordheim, вот реально эффект присутствия! Работает ура!

А подскажите, пожалуйста, как мне добавить текст в письмо и подпись?
просто вписать текст например в какую-то ячейку и добавить между этими строками например .Body = Range("K1") ?
Код
?
1
2
           .Subject = arr(i, 2)
           .BodyFormat = 2  'olFormatHTML - ôîðìàò HTML
мне бы конечно в идеале, как файле Дмитрия
Вместто {TABLE} таблицу, а все остальное текстом  :oops:


Добрый день!

Направляю Отчет о выполнении обязательств по BDF Договоров.
Прошу обратить внимание на договора:
{TABLE}

С Уважением,/Best regards,

Maria Fokina
Customer Operation Specialist
Изменено: Мария - - 21 Май 2019 17:13:50
 
Maria Fokina, Пробуйте!  ;)
"Все гениальное просто, а все простое гениально!!!"
 
Nordheim, ура! письма создает! только вот вопрос. после последнего созданного письма выдает ошибку на строке
Код
        Set rng = ThisWorkbook.Worksheets(arr(i, 1)).UsedRange
Capture.PNG (5.37 КБ)
 
На каом файле тестируете, если из сообщения №15, то у меня не было ошибок, а так нужно смотреть.
Вариантов несколько:
1) Нет листа с названием которое содержит массив
2) Лист есть, но совершенно пустой.
Посмотрите чему равна переменная i и чему равно значение массива arr c индексом (i,1), проверьте есть ли такой лист, и не пустой ли он. Если проблема в одном из случаев описанных выше, то нужно ставить проверку на наличие листа и на наличие на листе каких либо данных.
Изменено: Nordheim - 22 Май 2019 10:42:01
"Все гениальное просто, а все простое гениально!!!"
 
Nordheim, а если есть лист, но не нет строки с адресом, тоже может быть эта ошибка?
 
Что значит нет строки с адресом? С листа берется диапазон, не важно какие там данные, главное что бы там было хоть что-то.
"Все гениальное просто, а все простое гениально!!!"
Страницы: 1
Читают тему (гостей: 1)
Наверх