Доброго времени суток. Необходимо вести учет событий наступающих конкретного числа. В столбец заносятся даты. Когда допустим до нее остается неделя - на заданный диапазон адресов высылается письмо с уведомлением. Подскажите пожалуйста возможна ли организация подобной рассылки и как это осуществить. Заранее благодарю ВСЕХ откликнувшихся.
Доброго времени суток. Необходимо вести учет событий наступающих конкретного числа. В столбец заносятся даты. Когда допустим до нее остается неделя - на заданный диапазон адресов высылается письмо с уведомлением. Подскажите пожалуйста возможна ли организация подобной рассылки и как это осуществить. Заранее благодарю ВСЕХ откликнувшихся.WILDBeavis
Сообщение отредактировал WILDBeavis - Вторник, 19.03.2013, 14:38
Sub Mail_Workbook_1() ' Works in Excel 2000, Excel 2002, Excel 2003, Excel 2007, Excel 2010, Outlook 2000, Outlook 2002, Outlook 2003, Outlook 2007, Outlook 2010. ' This example sends the last saved version of the Activeworkbook object . Dim OutApp As Object Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0)
On Error Resume Next ' Change the mail address and subject in the macro before you run it.
With Date If Range("B1") = Date Then With OutMail .To = "andrej@gmail.com" .CC = "" .BCC = "" .Subject = "Nezabud segodnia kupit moloko " .Body = Range("A3") '.Attachments.Add ActiveWorkbook.FullName ' You can add other files by uncommenting the following line. '.Attachments.Add ("C:\test.txt") ' In place of the following statement, you can use ".Display" to ' display the mail. .Send
End With End If End With On Error GoTo 0
Set OutMail = Nothing Set OutApp = Nothing End Sub
[/vba]
Используйте теги для форматирования кода!
[vba]
Код
Sub Mail_Workbook_1() ' Works in Excel 2000, Excel 2002, Excel 2003, Excel 2007, Excel 2010, Outlook 2000, Outlook 2002, Outlook 2003, Outlook 2007, Outlook 2010. ' This example sends the last saved version of the Activeworkbook object . Dim OutApp As Object Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0)
On Error Resume Next ' Change the mail address and subject in the macro before you run it.
With Date If Range("B1") = Date Then With OutMail .To = "andrej@gmail.com" .CC = "" .BCC = "" .Subject = "Nezabud segodnia kupit moloko " .Body = Range("A3") '.Attachments.Add ActiveWorkbook.FullName ' You can add other files by uncommenting the following line. '.Attachments.Add ("C:\test.txt") ' In place of the following statement, you can use ".Display" to ' display the mail. .Send
End With End If End With On Error GoTo 0
Set OutMail = Nothing Set OutApp = Nothing End Sub
[/vba]
Используйте теги для форматирования кода!Andrej092
Вот такой VBAесть. отсылает email если дата подходит. Только Outlook ругается что Excel хочет самостоятельно email послать, но это другая тема .
Вот такой VBAесть. отсылает email если дата подходит. Только Outlook ругается что Excel хочет самостоятельно email послать, но это другая тема . Andrej092
Andrej092, поделитесь с сообществом, зачем в коде нужны строки:
Я просто думал что без них не будет работать строка:
If Range("B1") = Date Then
A "If Range("B1") = Date Then" нужно для сравнения даты, если совподают то email отсылается
А у меня вопрос может ли МАКРОС работать при закрытом EXCEL , если да то как это сделать а то никак не получается найти ответ на этот вопрос???? Я хочу чтоб емайлы сами рассылалиь и не надо было файл открывать Я только начинаю в Макрос вьезжать...
Цитата (KuklP)
Andrej092, поделитесь с сообществом, зачем в коде нужны строки:
Я просто думал что без них не будет работать строка:
If Range("B1") = Date Then
A "If Range("B1") = Date Then" нужно для сравнения даты, если совподают то email отсылается
А у меня вопрос может ли МАКРОС работать при закрытом EXCEL , если да то как это сделать а то никак не получается найти ответ на этот вопрос???? Я хочу чтоб емайлы сами рассылалиь и не надо было файл открывать Я только начинаю в Макрос вьезжать... Andrej092
я находил ответ на этот вопрос. Там надо в outlook галочку в одмом месте поставить и всё будит ок . Но так как я не администратор то не могу этого сделать .... Но большое спасибо за ссылку
Цитата (Gustav)
По этой теме можно вот здесь покопаться
я находил ответ на этот вопрос. Там надо в outlook галочку в одмом месте поставить и всё будит ок . Но так как я не администратор то не могу этого сделать .... Но большое спасибо за ссылку Andrej092
Здравствуйте. Вопрос . Если я пишу "If Range("B1") = Date Then" то всё отсылается правильно , но как только я хочу чтоб он проверил даты во всей колонне "If Range("B1:B20") = Date Then", то он отсылает в любом случае даже если дата ещё не сегодняшняя ..... Почему ???
Здравствуйте. Вопрос . Если я пишу "If Range("B1") = Date Then" то всё отсылается правильно , но как только я хочу чтоб он проверил даты во всей колонне "If Range("B1:B20") = Date Then", то он отсылает в любом случае даже если дата ещё не сегодняшняя ..... Почему ??? Andrej092
Andrej092, Конечно, не подходит - под конкретно вашу задачу. Поскольку примера вашего файла так никто и не увидел. А условие вы описываете как-то странно - то у вас "В столбец заносятся даты. Когда до нее остается неделя...", то у вас If [B1] = Date (что есть "дата равна")
Andrej092, Конечно, не подходит - под конкретно вашу задачу. Поскольку примера вашего файла так никто и не увидел. А условие вы описываете как-то странно - то у вас "В столбец заносятся даты. Когда до нее остается неделя...", то у вас If [B1] = Date (что есть "дата равна")AndreTM
Hадо сравнить дату в ячейках B2:B11 с сегодняшней и если совподает автоматически выслать email.
Вы посмотрите своим профессиональным взглядом, может там чего за много записано или не так. Объясните что к чему, а то я только учюсь. И дополнительный вопрос. Если выйдет это сделать, то может можно чтоб из колонки C2:C11 добовлялись соответствующие ячейки в емайл в текст У меня сейчас стоит просто ".Body = Range("C1")"
Большое спасибо
P.S. Если будите писать объяснения в VBA EXCEL то пишите латинскими буквами у меня комп на работе не читает кирилицу
AndreTM,
Hадо сравнить дату в ячейках B2:B11 с сегодняшней и если совподает автоматически выслать email.
Вы посмотрите своим профессиональным взглядом, может там чего за много записано или не так. Объясните что к чему, а то я только учюсь. И дополнительный вопрос. Если выйдет это сделать, то может можно чтоб из колонки C2:C11 добовлялись соответствующие ячейки в емайл в текст У меня сейчас стоит просто ".Body = Range("C1")"
Большое спасибо
P.S. Если будите писать объяснения в VBA EXCEL то пишите латинскими буквами у меня комп на работе не читает кирилицу Andrej092
Уважаемые, не подскажите мне в рамках данного макроса хотелось бы решить следующие задачи: Просматривать несколько диапазонов и сравнивать не с текущей датой, а с датой за три дня до текущей и для каждого диапазона сравнения дат свой адресат для отправки и при отправке прикреплять файл, с которым я работаю. Насколько я вижу решение данного вопроса заключается в следующем (не могу сообразить где прописать прикрепление данного файла?):
[vba]
Код
Sub Mail_Workbook_1() Dim OutApp As Object Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0)
On Error Resume Next ' Change the mail address and subject in the macro before you run it.
' Nado sravnit datu v "B2:B11" s segodniashnei datoj i esli sovpodaet avtomaticheski vyslat email
If Range("B2:B11") = Date-3 Then With OutMail .To = "sklad@awt.ru" .CC = "" .Subject = "Finished bron" .Body = "Text of the letter" .Send
End With
Else If Range("C2:C11") = Date-3 Then 'И так цикл повторять для каждого диапазона? With OutMail .To = "a.buzdugan@awt.ru" .CC = "" .BCC = "" .Subject = "Finished bron" .Body = "Text of the letter" .Send
End With End If End If On Error GoTo 0
Set OutMail = Nothing Set OutApp = Nothing End Sub
[/vba]
Уважаемые, не подскажите мне в рамках данного макроса хотелось бы решить следующие задачи: Просматривать несколько диапазонов и сравнивать не с текущей датой, а с датой за три дня до текущей и для каждого диапазона сравнения дат свой адресат для отправки и при отправке прикреплять файл, с которым я работаю. Насколько я вижу решение данного вопроса заключается в следующем (не могу сообразить где прописать прикрепление данного файла?):
[vba]
Код
Sub Mail_Workbook_1() Dim OutApp As Object Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0)
On Error Resume Next ' Change the mail address and subject in the macro before you run it.
' Nado sravnit datu v "B2:B11" s segodniashnei datoj i esli sovpodaet avtomaticheski vyslat email
If Range("B2:B11") = Date-3 Then With OutMail .To = "sklad@awt.ru" .CC = "" .Subject = "Finished bron" .Body = "Text of the letter" .Send
End With
Else If Range("C2:C11") = Date-3 Then 'И так цикл повторять для каждого диапазона? With OutMail .To = "a.buzdugan@awt.ru" .CC = "" .BCC = "" .Subject = "Finished bron" .Body = "Text of the letter" .Send
End With End If End If On Error GoTo 0
Set OutMail = Nothing Set OutApp = Nothing End Sub