powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / авторассылка файлов Excel через Outlook
8 сообщений из 8, страница 1 из 1
авторассылка файлов Excel через Outlook
    #35859765
Servjul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,
Подскажите, пожалуйста, может у кого есть VBA-решение по автоматической рассылке файлов.
Проблема такая: есть Excel-файл (например, с данными по Питеру), который необходимо отправить всем питерским получателям.
А поскольку городов -тьма, можно ли как-то автоматизировать процесс рассылки.
Например, файлы попадают в папку "Рассылка" и оттуда автоматически один раз отсылаются по соответствующим адресам?
Спасибо заранее.
...
Рейтинг: 0 / 0
авторассылка файлов Excel через Outlook
    #35861523
Hekk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Точно не знаю но я делал так

Как вариант эксель выкладывает файлы по папкам, а потом
MailParser
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 представляет собой автономный почтовый клиент (почтовый робот), позволяющий:
– извлекать вложения из входящей почты и раскладывать их по директориям в соответствии с правилами разбора почты (по протоколу POP3);
– сканировать директории на наличие файлов, формировать для них письма и отправлять их на указанные адреса в соответствиями с правилами подготовки почты (по протоколу SMTP);
– обрабатывать неограниченное количество потовых аккаунтов;
– запускать внешнее приложение (командный файл) после приема почты;
– вести архив и журнал извлеченных и отправленных вложений;
– проверять и отправлять почту с заданным интервалом.

Или как вариан Excel публикует отчет в папку и создает bat файл с строками отсылки
через Postie или SendMail

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
Private Sub Workbook_Open()
Dim bstFileName As String
Dim MonthDay As Long
Dim CurDay As String
Dim CurMonth As String
Dim CurMonthLY As String
Dim E_C As String
Dim E_CC As String

E_C = _
    "tik@er.ru, eva@er.ru," _
    & "ov@er.ru, mkov@er.ru," _
    & "tin@er.ru"
        
E_CC = _
    "tik@er.ru, eva@er.ru," _
    & "ov@er.ru, mkov@er.ru," _
    & "tin@er.ru

    Call Logo
    Sheets("Data").Visible = True
    bdt_Dat = Date - 1
    bstFileName = "c:\postie\!send_day.bat"
    Open bstFileName For Output As #1
    Print #1, "Rem -----------  Daily_Report.xls  " & Date & " " & Time
    Print #1,
    Print #1, "echo ______________________________________________________________________ >>!send_message.log"
    Print #1, "echo  " & bdt_Dat & " è " & bdt_Dat & "  >>!send_message.log"
    Print #1, "date /t  >>!send_message.log"
    Print #1, "time /t  >>!send_message.log"
    Print #1,
    
    CurMonth = "[Logicdate].[All Logicdate].[" & Year(bdt_Dat) & "].[" & Month_To_Text(Month(bdt_Dat)) & "]"
    CurMonthLY = "[Logicdate].[All Logicdate].[" & Year(bdt_Dat - 365) & "].[" & Month_To_Text(Month(bdt_Dat)) & "]"
    
    Sheets("Daily-by-TM").Select
    
    Range("E9").Select
    GetDollar
    Range("G9").Select
    GetDollarOLD
    
    
    Sheets("Data").Select
    
    
    If Day(Date) = 2 Then Month_Change
    
    ActiveSheet.PivotTables("Act sales").PivotCache.Refresh
    ActiveSheet.PivotTables("Act check").PivotCache.Refresh
    ActiveSheet.PivotTables("plan sales").PivotCache.Refresh
    ActiveSheet.PivotTables("plan check").PivotCache.Refresh
    ActiveSheet.PivotTables("LY sales").PivotCache.Refresh
    ActiveSheet.PivotTables("LY check").PivotCache.Refresh
    
    Sheets("Daily-by-TM").Select
    
    Sort_Data
    
    With ActiveWorkbook.PublishObjects("MTD_Report_28372")
        .Filename = "d:\documents\Reports\" & bdt_Dat & "_Sales.mht"
        .Publish (False)
        .AutoRepublish = False
    End With
 
    
    Print #1, "postie.exe -config -a:" _
    & Chr(34) & "d:\documents\Reports\" & bdt_Dat & "_Sales.mht" & Chr(34) _
    & " -to:" & Chr(34) & E_C & Chr(34) _
    & " -cc:" & Chr(34) & E_CC & Chr(34) _
    & " -s:" & Chr(34) & "Every Day Report - Sales" & bdt_Dat & Chr(34) _
    & " -msg:" & Chr(34) & "Every Day Report - Sales " & bdt_Dat & Chr(34) _
    & " -file:" & Chr(34) & "text_typ.txt" & Chr(34) _
    & " >>!send_message.log"
 
    
    Close #1
    Sheets("Daily-by-TM").Select
    Sheets("Data").Visible = False
    ActiveWindow.Close SaveChanges:=True
  
End Sub

потом настраиваете планировщик на запуск файла excel c макросом по расписанию
потом настраиваете планировщик на запуск сформированного bat файла через 10 мин.
...
Рейтинг: 0 / 0
авторассылка файлов Excel через Outlook
    #35861709
Hekk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://www.askit.ru/custom/vba_office/m13/13_06_outlook_items_objects.htm

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Dim oOutlook As New Outlook.Application
Dim oMessage As Outlook.MailItem
'Создаем объект сообщения
Set oMessage = oOutlook.CreateItem(olMailItem)
' Кому
oMessage.To = "Administrator@nwtraders.msft"
'Тема сообщения
oMessage.Subject = "Привет из VBA"
'Текст сообщения. Использование свойства Body означает, что мы посылаем сообщение
'обычным текстом. Можно также посылать сообщение в HTML или RTF
oMessage.Body = "Текст сообщения"
'Добавляем вложение
oMessage.Attachments.Add ("C:\installlog.txt")
'Отправляем сообщение
oMessage.Send

...
Рейтинг: 0 / 0
авторассылка файлов Excel через Outlook
    #35862178
Servjul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to Hekk
Спасибо.
Буду пробовать...
...
Рейтинг: 0 / 0
авторассылка файлов Excel через Outlook
    #35873093
Hekk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
второй премер для VBA самого outlook-a
...
Рейтинг: 0 / 0
авторассылка файлов Excel через Outlook
    #35879195
Hekk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот нарыл еще пару примеров

Первый - просто отправка e-mail
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Sub test()
    Call SendPost("здесь IP почтового сервера или имя", "адрес получателя", "адрес отправителя", "Subj", "Тело", "атач" пример: C:\test.xls)
End Sub

'если не работает надо найти 2 библиотеки "inetcomm.dll msoert2.dll" и положить их в system32
Function SendPost(strSMTP_Server, strTo, strFrom, strSubject, strBody, strAttach)
    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
    Set Flds = iConf.Fields

    Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "пароль если есть"
    Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") =  2 
    Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") =  10 
    Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSMTP_Server
    Flds.Update
    iMsg.Configuration = iConf

    iMsg.To = strTo
    iMsg.From = strFrom
    iMsg.Subject = strSubject
    iMsg.TextBody = strBody
    If strAttach <> "" Then iMsg.AddAttachment strAttach
    iMsg.Send
    Set iMsg = Nothing
    Set iConf = Nothing
    Set Flds = Nothing
End Function

Проверил у меня заработало
только добавил еще строчку
Код: plaintext
 Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") =  2 


Второй - отправка раб. листа по электронной почте
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Sub SendSheet(ws As Worksheet, Address As String, Subject As String)
    ActiveSheet.Copy
        ActiveWorkbook.SaveAs "Part of " & ThisWorkbook.Name & " " & Format(Now, "h-mm-ss"), xlWorkbookNormal
            ActiveWorkbook.SendMail Address, Subject
                ActiveWorkbook.ChangeFileAccess xlReadOnly
            Kill ActiveWorkbook.FullName
        ActiveWorkbook.Close False
End Sub

Sub DemoSendSheet()
    SendSheet ActiveSheet, "your_email@address", "test message"
End Sub
...
Рейтинг: 0 / 0
авторассылка файлов Excel через Outlook
    #35879590
Фотография Папа Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Servjul...Проблема такая: есть Excel-файл (например, с данными по Питеру), который необходимо отправить всем питерским получателям. ...

Зачем заходить через "заднее крыльцо" (VBA, *.bat и т.п.)?

Создайте в Outlook списки рассылки и будет Вам счастье.

Возможности ограничены Вашей фантазией и почтовым сервером.
...
Рейтинг: 0 / 0
авторассылка файлов Excel через Outlook
    #36123500
Всем привет! Помогите реализовать похожую задачу. Есть прайс с ценами, где на каждом листе цены которые соответствуют определенному клиенту. На каждом листе в определенных ячейках будут забиты адреса и тема письма. Нужно чтобы при запуске макроса он заходил в каждый лист и если там стоит електронный адрес(условие), копировал бы формулы в значения и отправлял этот лист по указанным адресам.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / авторассылка файлов Excel через Outlook
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]