Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 07.11.2011, 20:31   #81
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Через The bat письма остаются в исходящих
а дописать одну команду для отправки сложно?
http://programmersforum.ru/showpost....98&postcount=2

обратите внимание на последнюю строку в коде
EducatedFool вне форума
Старый 06.02.2012, 19:02   #82
kserems
 
Регистрация: 22.01.2012
Сообщений: 7
По умолчанию

Доброго времени суток профессионалам в Microsoft Excel и VBA.
Прошу сильно не ругаться и по возможности оказать посильную помощь неопытному юзеру (то есть мне).

Увидел небольшой макрос для отправки страницы из книги по электронной почте посредством Microsoft Outlook:


Цитата:
Sub Send_ActiveBook()
ActiveWorkbook.ActiveSheet.Copy
ActiveWorkbook.SendMail "moyapochta@mail.ru", "Тема сообщения"
ActiveWorkbook.Close False
End Sub
У меня задача стоит в автоматизации процесса отправки страницы из книги Microsoft Excel.
В книге 24 листа, письма с прикрепленным листом из книги отправляются на разные адреса (каждая страница отправляется на определённый адрес), у каждого письма должна быть своя тема сообщения.

Можно ли модифицировать указанный макрос так, что бы адреса отправки и тема сообщения брались из ячеек находящихся на отправляемом (активном) листе?

Буду очень благодарен за посильную помощь.
kserems вне форума
Старый 06.02.2012, 19:27   #83
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Попробуйте
Код:
Sub Send_ActiveBook()
ActiveWorkbook.ActiveSheet.Copy
ActiveWorkbook.SendMail [a1].Value, [a2].Value
ActiveWorkbook.Close False
End Sub
В А1 - адрес, в А2 - тема.

Надёжнее так:
Код:
Sub Send_ActiveBook()
ActiveWorkbook.ActiveSheet.Copy
ActiveWorkbook.SendMail ActiveWorkbook.ActiveSheet.[a1].Value, ActiveWorkbook.ActiveSheet.[a2].Value
ActiveWorkbook.Close False
End Sub
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 06.02.2012 в 19:30.
Hugo121 вне форума
Старый 06.02.2012, 20:18   #84
kserems
 
Регистрация: 22.01.2012
Сообщений: 7
По умолчанию

Hugo121 Спасибо огромное!!!

Испытал второй вариант, работает, но появился ряд вопросов.

1. Можно ли как то сделать отправку на несколько адресов одновременно (попытался забить 2 адреса в ячейку с адресами, не удалось, ошибка выскочила: Run-time error 1004:
Application -defined or object-defined error).

2. При выполнении макроса выскакивает окошко (видимо какая то служба безопасности) предупреждающее о том что программа пытается отправить сообщение), есть ли возможность как то её отключить?

3. После копирования и отправки листа, новая книга остается открытой.

4. Так же хотелось бы отправлять не весь лист, а диапазон столбцов со страницы, если можно это реализовать подскажите плиз.

Последний раз редактировалось kserems; 06.02.2012 в 20:50. Причина: Добавлена информация
kserems вне форума
Старый 06.02.2012, 20:54   #85
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Без проверки:
несколько адресов нужно взять в массив, и давать как адрес массив.
Код:
Sub Send_ActiveBook()
Dim arr
arr = Split(ActiveWorkbook.ActiveSheet.[a1].Value, ",")
ActiveWorkbook.ActiveSheet.Copy
ActiveWorkbook.SendMail arr, ActiveWorkbook.ActiveSheet.[a2].Value
ActiveWorkbook.Close False
End Sub
В А1 - moyapochta@mail.ru,moyapochta2@mail .ru

С диапазоном думаю можно скопировать его на новый созданный лист и послать его.
Но возможно есть путь попроще.

"Служба безопасности" - не знаю. Экселевские предупреждения отключаются так:
Код:
Application.DisplayAlerts = False
Потом не забудьте включить назад!
Но это очевидно не экселевский аларм...
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума
Старый 07.02.2012, 16:58   #86
kserems
 
Регистрация: 22.01.2012
Сообщений: 7
По умолчанию

Hugo121 Ещё раз спасибо!

Работает, но несколько смущает предупреждение об отправке письма.
Порылся ещё в инете, нарыл макрос работающий без предупреждения, но как модифицировать под свои нужды (отправка диапазона ячеек в новой книге) пока не понимаю (знаний не хватает).

Окажите посильную помощь плиз.

Найденный в сети макрос:

Код:
Sub SendMail()  
    Dim OutApp As Object  
    Dim OutMail As Object  
    Dim cell As Range  
      
    Application.ScreenUpdating = False  
    Set OutApp = CreateObject("Outlook.Application")  
    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
kserems вне форума
Старый 07.02.2012, 17:02   #87
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Я пас - тестировать не на чем.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума
Старый 07.02.2012, 17:17   #88
kserems
 
Регистрация: 22.01.2012
Сообщений: 7
По умолчанию

Hugo121 Спасибо, значит не судьба, может ещё кто поможет.
kserems вне форума
Старый 09.02.2012, 02:02   #89
Slavatron1984
Форумчанин
 
Аватар для Slavatron1984
 
Регистрация: 04.12.2011
Сообщений: 148
По умолчанию

в ЕХЕЛЕ 2010 МОЖНО СТАНДАРТНОЙ ФУНКЦИЕЙ ОТПРАВИТЬ файл -- сохранить и отправить ОТПРАВИТЬ--отправить по электронной почте
Slavatron1984 вне форума
Старый 09.02.2012, 17:31   #90
kserems
 
Регистрация: 22.01.2012
Сообщений: 7
По умолчанию

На работе стоит Excel 2003, да и задача всё автоматизировать.
Прошу помощи профи.
kserems вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка почты Fess HTML и CSS 15 11.03.2010 20:24
Отправка почты Fo][ Работа с сетью в Delphi 1 20.01.2009 23:15
отправка почты? gusluk Работа с сетью в Delphi 2 17.11.2008 07:45
Отправка почты Fenix Nexsais Работа с сетью в Delphi 5 06.09.2007 22:27
Отправка почты Mikola PHP 4 12.08.2007 04:17