Страницы: 1
RSS
Отправка писем в зависимости от текстового значения ячейки
 
Всем привет. Прошу Вашей помощи в решении такой задачи:  
 
В таблице присутствуют названия организаций, а напротив текстовое значение в зависимости от времени - это либо Опоздание, либо Вовремя.
Необходимо, чтобы при значении Опоздание автоматически высылалось письмо человеку/
 
Думая над этой проблемой, логически додуманы несколько проблем:  
- хотелось бы, чтобы макрос срабатывал автоматически при открытии файла excel, но в связи с этим возникает проблема, что необходимо сделать какой-нибудь счетчик, может быть, чтобы не отправлялось кучу писем каждый раз :)  
 
-У каждого есть своя почта. Возможно нужно как-то присвоить данным ячейкам почты людей, в зависимости от того, кто там записан, чтобы макрос знал кому надо отправлять письмо (человек ответственный за транспортную компанию)?  

Код
Option Explicit
 
Sub Send_Mail()
    Dim objOutlookApp As Object, objMail As Object
    Dim sTo As String, sSubject As String, sBody As String, sAttachment As String
 
    Application.ScreenUpdating = False
    On Error Resume Next
    Set objOutlookApp = GetObject(, "Outlook.Application")
    Err.Clear 
    If objOutlookApp Is Nothing Then
        Set objOutlookApp = CreateObject("Outlook.Application")
    End If
    objOutlookApp.Session.Logon
    Set objMail = objOutlookApp.CreateItem(0)   
    If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub
    sTo = "AddressTo@mail.ru"    
    sSubject = "Автоотправка"   
    sBody = "Привет от Excel-VBA"    
    sAttachment = "C:\Temp\Книга1.xls"
    With objMail
        .To = sTo 
        .CC = "" 
        .BCC = "" 
        .Subject = sSubject 
        .Body = sBody 
        '.HTMLBody = sBody 
        .Attachments.Add sAttachment 
        .Send 'Display
    End With
 
    Set objOutlookApp = Nothing: Set objMail = Nothing
    Application.ScreenUpdating = True
End Sub






Изменено: bladerrr1 - 14.09.2018 14:28:10
 
bladerrr1,а вопрос то в чем?
 
ivanok_v2 вопрос в том:

- хотелось бы, чтобы макрос срабатывал автоматически при открытии файла excel, но в связи с этим возникает проблема, что необходимо сделать какой-нибудь счетчик, может быть, чтобы не отправлялось кучу писем каждый раз  

-У каждого есть своя почта. Возможно нужно как-то присвоить данным ячейкам почты людей, в зависимости от того, кто там записан, чтобы макрос знал кому надо отправлять письмо (человек ответственный за транспортную компанию)?  

автоматически высылалось письмо человеку


Макрос предоставленный мной, делаю пересылку только 1 получателю, который указан мной, и определенной ячейки. а мне нужно, что бы макрос определял автоматически по значению и желательно делал все, что написано выше, но увы не знаю как это осуществить....  )
Изменено: bladerrr1 - 14.09.2018 14:27:50
 
bladerrr1,создайте лист с фамилиями и адресами электрической почты главное чтобы фамилии на листе с адресами были написаны так же как и на листе с итогами
Никакой счётчик не нужен, наоборот нужно будет немного притормозить если письмо без вложений, так же нужен признак - отправлено письмо или нет.этому адресату.
Ну и желательна возможность ручной отправки конкретному получателю независимо от признака.
Не стреляйте в тапера - он играет как может.
 
bladerrr1, и не нужно писать через 1-2 строки.
 
Ts.Soft из всего написанного я только понял:
Цитата
Ts.Soft написал:
электрической почты
Но к сожалению ее у меня нет  :D  8)

Только Электронная)  
 
Юрий М, в каком смысле ?  
 
В том, что не нужно жать на Enter по 2-3 раза.
 
Юрий М, понял. Привычка такая, на работе письма так пишу, чтобы легче воспринималось)
 
Цитата
bladerrr1 написал:
У каждого есть своя почта. Возможно нужно как-то присвоить данным ячейкам почты людей, в зависимости от того, кто там записан
вот там же, где Вы взяли этот код есть так же код массовой рассылки с забором адресов из ячеек.
Но в Вашем файле нет даже намека на какие-то адреса для отправки. Поэтому совершенно неясно какой помощи ожидаете в этом случае. найти почту по фамилии в интернете? :)
Создайте нормальный список рассылки(без применения сводных) и все будет проще.
Для авторассылки при открытии файла можно использовать событие в ЭтаКнига - Workbook_Open.
Изменено: Дмитрий(The_Prist) Щербаков - 14.09.2018 15:07:07
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Но в Вашем файле нет даже намека на какие-то адреса для отправки
test1@mail.ru
test2@mail.ru
test3@mail.ru
Можно взять для примера :) Без сводных таблиц не получится ибо оттуда берутся показатели основные.
К тому же мне нужен отбор, по определенному значению, а там способ такой не показан....
Изменено: bladerrr1 - 14.09.2018 15:09:36
 
Цитата
bladerrr1 написал:
Можно взять для примера
Для примера можно взять что угодно. Вы скажите где хранятся адреса? В каком диапазоне ячеек и каким получателям они соответствуют. Сделайте что-то вроде:
Столбец А            Столбец В
Иванов                 test1@mail.ru
Петров                 test2@mail.ru
Сидоров               test3@mail.ru
Не стреляйте в тапера - он играет как может.
 
Ts.Soft во вложении
 
bladerrr1,т.е. Вы хотите хранить адреса в отдельном файле? Проще было бы создать дополнительный лист
Не стреляйте в тапера - он играет как может.
 
Ts.Soft файл сразу становится большим весом, если Вам не сложно скопируйте с одного в другой пжлста.
 
Цитата
bladerrr1 написал:
файл сразу становится большим весом, если Вам не сложно скопируйте с одного в другой пжлста.
Если я вставлю лист с адресами и вес файла превысит предельный размер для примера, то как я выложу его сюда?

У Вас в файле мульён скрытых листов. Для примера они не нужны. Оставьте один-два с которых подтянутся данные за пару дней.
Сохраните файл в двоичном формате (xlsb) - размер будет существенно меньше.

Кроме создания страницы соответствия Организация - E-mail
объясните по какому принципу должны формироваться поля тема, текст и вложение. В Вашем макросе Вы вставляете эти значения вручную, но при автоматической отправке нужно знать по какому принципу Вы их заполняете.
Код
sSubject = "Автоотправка"  
sBody = "Привет от Excel-VBA"    
sAttachment = "C:\Temp\Книга1.xls"
Не стреляйте в тапера - он играет как может.
Страницы: 1
Наверх