Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/отправка письма на определенную дату и время - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » отправка письма на определенную дату и время (Макросы Sub)
отправка письма на определенную дату и время
dronin Дата: Суббота, 18.01.2014, 22:31 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
доброй ночи,

есть макрос...отсылает письмо. хочу чтобы он высылал письмо на определенную дату (которая установлена в ячейке в определенное время)
стырил часть кода получилось так, но не работает
[vba]
Код

Sub Procedura_1()
Application.OnTime Now + TimeValue("00:00:05"), "Send_Mail()"
End Sub

Sub Send_Mail()
Const CDO_Cnf = "http://schemas.microsoft.com/cdo/configuration/"
Dim oCDOCnf As Object, oCDOMsg As Object
Dim SMTPserver As String, sUsername As String, sPass As String, sMsg As String
Dim sTo As String, sFrom As String, sSubject As String, sBody As String, sAttachment As String
On Error Resume Next
'sFrom - êàê ïðàâèëî ñîâïàäàåò ñ sUsername
SMTPserver = [B10] ' SMTPServer: äëÿ Mail.ru "smtp.mail.ru"; äëÿ ßíäåêñà "smtp.yandex.ru"; äëÿ Ðàìáëåðà "mail.rambler.ru"
sUsername = [B11] ' Ó÷åòíàÿ çàïèñü íà ñåðâåðå
sPass = [B12] ' Ïàðîëü ê ïî÷òîâîìó àêêàóíòó

If Len(SMTPserver) = 0 Then MsgBox "Íå óêàçàí SMTP ñåðâåð", vbInformation, "111": Exit Sub
If Len(sUsername) = 0 Then MsgBox "Íå óêàçàíà ó÷åòíàÿ çàïèñü", vbInformation, "111": Exit Sub
If Len(sPass) = 0 Then MsgBox "Íå óêàçàí ïàðîëü", vbInformation, "111": Exit Sub

sTo = [B2] 'Êîìó
sFrom = [B3] 'Îò êîãî
sSubject = [B4] 'Òåìà ïèñüìà
sBody = [B5] 'Òåêñò ïèñüìà
sAttachment = [B6] 'Âëîæåíèå(ïîëíûé ïóòü ê ôàéëó)
'Ïðîâåðêà íàëè÷èÿ ôàéëà ïî óêàçàííîìó ïóòè
If Dir(sAttachment, vbDirectory) = "" Then sAttachment = ""
'Íàçíà÷àåì êîíôèãóðàöèþ CDO
Set oCDOCnf = CreateObject("CDO.Configuration")
With oCDOCnf.Fields
.Item(CDO_Cnf & "sendusing") = 2
.Item(CDO_Cnf & "smtpauthenticate") = 1
.Item(CDO_Cnf & "smtpserver") = SMTPserver
.Item(CDO_Cnf & "sendusername") = sUsername
.Item(CDO_Cnf & "sendpassword") = sPass
.Update
End With
'Ñîçäàåì ñîîáùåíèå
Set oCDOMsg = CreateObject("CDO.Message")
With oCDOMsg
Set .Configuration = oCDOCnf
.BodyPart.Charset = "koi8-r"
.From = sFrom
.To = sTo
.Subject = sSubject
.TextBody = sBody
If Len(sAttachment) > 0 Then .AddAttachment sAttachment
.Send
End With

Select Case Err.Number
Case -2147220973: sMsg = "Íåò äîñòóïà ê Èíòåðíåò"
Case -2147220975: sMsg = "Îòêàç ñåðâåðà SMTP"
Case 0: sMsg = "Ïèñüìî îòïðàâëåíî"
End Select
MsgBox sMsg, vbInformation, "111"
Set oCDOMsg = Nothing: Set oCDOCnf = Nothing
End Sub

Sub Get_File_Path()
Dim sPath
sPath = Application.GetOpenFilename("All Files(*.*),*.*", , "Âûáðàòü ôàéëû", "Âûáðàòü", False)
If sPath = False Then Exit Sub
[B6] = sPath
End Sub
[/vba]


Сообщение отредактировал Serge_007 - Суббота, 18.01.2014, 22:35
 
Ответить
Сообщениедоброй ночи,

есть макрос...отсылает письмо. хочу чтобы он высылал письмо на определенную дату (которая установлена в ячейке в определенное время)
стырил часть кода получилось так, но не работает
[vba]
Код

Sub Procedura_1()
Application.OnTime Now + TimeValue("00:00:05"), "Send_Mail()"
End Sub

Sub Send_Mail()
Const CDO_Cnf = "http://schemas.microsoft.com/cdo/configuration/"
Dim oCDOCnf As Object, oCDOMsg As Object
Dim SMTPserver As String, sUsername As String, sPass As String, sMsg As String
Dim sTo As String, sFrom As String, sSubject As String, sBody As String, sAttachment As String
On Error Resume Next
'sFrom - êàê ïðàâèëî ñîâïàäàåò ñ sUsername
SMTPserver = [B10] ' SMTPServer: äëÿ Mail.ru "smtp.mail.ru"; äëÿ ßíäåêñà "smtp.yandex.ru"; äëÿ Ðàìáëåðà "mail.rambler.ru"
sUsername = [B11] ' Ó÷åòíàÿ çàïèñü íà ñåðâåðå
sPass = [B12] ' Ïàðîëü ê ïî÷òîâîìó àêêàóíòó

If Len(SMTPserver) = 0 Then MsgBox "Íå óêàçàí SMTP ñåðâåð", vbInformation, "111": Exit Sub
If Len(sUsername) = 0 Then MsgBox "Íå óêàçàíà ó÷åòíàÿ çàïèñü", vbInformation, "111": Exit Sub
If Len(sPass) = 0 Then MsgBox "Íå óêàçàí ïàðîëü", vbInformation, "111": Exit Sub

sTo = [B2] 'Êîìó
sFrom = [B3] 'Îò êîãî
sSubject = [B4] 'Òåìà ïèñüìà
sBody = [B5] 'Òåêñò ïèñüìà
sAttachment = [B6] 'Âëîæåíèå(ïîëíûé ïóòü ê ôàéëó)
'Ïðîâåðêà íàëè÷èÿ ôàéëà ïî óêàçàííîìó ïóòè
If Dir(sAttachment, vbDirectory) = "" Then sAttachment = ""
'Íàçíà÷àåì êîíôèãóðàöèþ CDO
Set oCDOCnf = CreateObject("CDO.Configuration")
With oCDOCnf.Fields
.Item(CDO_Cnf & "sendusing") = 2
.Item(CDO_Cnf & "smtpauthenticate") = 1
.Item(CDO_Cnf & "smtpserver") = SMTPserver
.Item(CDO_Cnf & "sendusername") = sUsername
.Item(CDO_Cnf & "sendpassword") = sPass
.Update
End With
'Ñîçäàåì ñîîáùåíèå
Set oCDOMsg = CreateObject("CDO.Message")
With oCDOMsg
Set .Configuration = oCDOCnf
.BodyPart.Charset = "koi8-r"
.From = sFrom
.To = sTo
.Subject = sSubject
.TextBody = sBody
If Len(sAttachment) > 0 Then .AddAttachment sAttachment
.Send
End With

Select Case Err.Number
Case -2147220973: sMsg = "Íåò äîñòóïà ê Èíòåðíåò"
Case -2147220975: sMsg = "Îòêàç ñåðâåðà SMTP"
Case 0: sMsg = "Ïèñüìî îòïðàâëåíî"
End Select
MsgBox sMsg, vbInformation, "111"
Set oCDOMsg = Nothing: Set oCDOCnf = Nothing
End Sub

Sub Get_File_Path()
Dim sPath
sPath = Application.GetOpenFilename("All Files(*.*),*.*", , "Âûáðàòü ôàéëû", "Âûáðàòü", False)
If sPath = False Then Exit Sub
[B6] = sPath
End Sub
[/vba]

Автор - dronin
Дата добавления - 18.01.2014 в 22:31
antal10 Дата: Воскресенье, 19.01.2014, 00:59 | Сообщение № 2
Группа: Проверенные
Ранг: Участник
Сообщений: 58
Репутация: 8 ±
Замечаний: 0% ±

Excel 2013
Попробуйте заменить
[vba]
Код
Application.OnTime Now + TimeValue("00:00:05"), "Send_Mail()"
[/vba]
на
[vba]
Код
Dim dDate As Date  
dDate = Sheet1.Range ("А1") 'Замените лист и ячейку на свою
Application.OnTime dDate, "Send_Mail()"
[/vba]
может поможет

[p.s.]А вообще копируйте код в русской раскладке. А то кто захочет разбираться в ваших кракозябрах.[/p.s.]
 
Ответить
СообщениеПопробуйте заменить
[vba]
Код
Application.OnTime Now + TimeValue("00:00:05"), "Send_Mail()"
[/vba]
на
[vba]
Код
Dim dDate As Date  
dDate = Sheet1.Range ("А1") 'Замените лист и ячейку на свою
Application.OnTime dDate, "Send_Mail()"
[/vba]
может поможет

[p.s.]А вообще копируйте код в русской раскладке. А то кто захочет разбираться в ваших кракозябрах.[/p.s.]

Автор - antal10
Дата добавления - 19.01.2014 в 00:59
dronin Дата: Воскресенье, 19.01.2014, 01:20 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
задача решена
вот код кому нужно

[vba]
Код
Sub Procedura_1()
Application.OnTime [b15] + TimeSerial(1, 16, 5), "Send_Mail"
Application.OnTime [b15] + TimeSerial(1, 16, 45), "Send_Mail"
End Sub

Sub Send_Mail()
Const CDO_Cnf = "http://schemas.microsoft.com/cdo/configuration/"
Dim oCDOCnf As Object, oCDOMsg As Object
Dim SMTPserver As String, sUsername As String, sPass As String, sMsg As String
Dim sTo As String, sFrom As String, sSubject As String, sBody As String, sAttachment As String
On Error Resume Next
SMTPserver = [B10]
sUsername = [B11]
sPass = [B12]

If Len(SMTPserver) = 0 Then MsgBox "Íå óêàçàí SMTP ñåðâåð", vbInformation, "111": Exit Sub
If Len(sUsername) = 0 Then MsgBox "Íå óêàçàíà ó÷åòíàÿ çàïèñü", vbInformation, "111": Exit Sub
If Len(sPass) = 0 Then MsgBox "Íå óêàçàí ïàðîëü", vbInformation, "111": Exit Sub

sTo = [B2]
sFrom = [B3]
sSubject = [B4]
sBody = [B5]
sAttachment = [B6]
If Dir(sAttachment, vbDirectory) = "" Then sAttachment = ""
Set oCDOCnf = CreateObject("CDO.Configuration")
With oCDOCnf.Fields
.Item(CDO_Cnf & "sendusing") = 2
.Item(CDO_Cnf & "smtpauthenticate") = 1
.Item(CDO_Cnf & "smtpserver") = SMTPserver
.Item(CDO_Cnf & "sendusername") = sUsername
.Item(CDO_Cnf & "sendpassword") = sPass
.Update
End With
Set oCDOMsg = CreateObject("CDO.Message")
With oCDOMsg
Set .Configuration = oCDOCnf
.BodyPart.Charset = "koi8-r"
.From = sFrom
.To = sTo
.Subject = sSubject
.TextBody = sBody
If Len(sAttachment) > 0 Then .AddAttachment sAttachment
.Send
End With

Select Case Err.Number
Case -2147220973: sMsg = "Íåò äîñòóïà ê Èíòåðíåò"
Case -2147220975: sMsg = "Îòêàç ñåðâåðà SMTP"
Case 0: sMsg = "Ïèñüìî îòïðàâëåíî"
End Select
MsgBox sMsg, vbInformation, "111"
Set oCDOMsg = Nothing: Set oCDOCnf = Nothing
End Sub

Sub Get_File_Path()
Dim sPath
sPath = Application.GetOpenFilename("All Files(*.*),*.*", , "Âûáðàòü ôàéëû", "Âûáðàòü", False)
If sPath = False Then Exit Sub
[B6] = sPath
End Sub
[/vba]


Сообщение отредактировал Serge_007 - Воскресенье, 19.01.2014, 09:24
 
Ответить
Сообщениезадача решена
вот код кому нужно

[vba]
Код
Sub Procedura_1()
Application.OnTime [b15] + TimeSerial(1, 16, 5), "Send_Mail"
Application.OnTime [b15] + TimeSerial(1, 16, 45), "Send_Mail"
End Sub

Sub Send_Mail()
Const CDO_Cnf = "http://schemas.microsoft.com/cdo/configuration/"
Dim oCDOCnf As Object, oCDOMsg As Object
Dim SMTPserver As String, sUsername As String, sPass As String, sMsg As String
Dim sTo As String, sFrom As String, sSubject As String, sBody As String, sAttachment As String
On Error Resume Next
SMTPserver = [B10]
sUsername = [B11]
sPass = [B12]

If Len(SMTPserver) = 0 Then MsgBox "Íå óêàçàí SMTP ñåðâåð", vbInformation, "111": Exit Sub
If Len(sUsername) = 0 Then MsgBox "Íå óêàçàíà ó÷åòíàÿ çàïèñü", vbInformation, "111": Exit Sub
If Len(sPass) = 0 Then MsgBox "Íå óêàçàí ïàðîëü", vbInformation, "111": Exit Sub

sTo = [B2]
sFrom = [B3]
sSubject = [B4]
sBody = [B5]
sAttachment = [B6]
If Dir(sAttachment, vbDirectory) = "" Then sAttachment = ""
Set oCDOCnf = CreateObject("CDO.Configuration")
With oCDOCnf.Fields
.Item(CDO_Cnf & "sendusing") = 2
.Item(CDO_Cnf & "smtpauthenticate") = 1
.Item(CDO_Cnf & "smtpserver") = SMTPserver
.Item(CDO_Cnf & "sendusername") = sUsername
.Item(CDO_Cnf & "sendpassword") = sPass
.Update
End With
Set oCDOMsg = CreateObject("CDO.Message")
With oCDOMsg
Set .Configuration = oCDOCnf
.BodyPart.Charset = "koi8-r"
.From = sFrom
.To = sTo
.Subject = sSubject
.TextBody = sBody
If Len(sAttachment) > 0 Then .AddAttachment sAttachment
.Send
End With

Select Case Err.Number
Case -2147220973: sMsg = "Íåò äîñòóïà ê Èíòåðíåò"
Case -2147220975: sMsg = "Îòêàç ñåðâåðà SMTP"
Case 0: sMsg = "Ïèñüìî îòïðàâëåíî"
End Select
MsgBox sMsg, vbInformation, "111"
Set oCDOMsg = Nothing: Set oCDOCnf = Nothing
End Sub

Sub Get_File_Path()
Dim sPath
sPath = Application.GetOpenFilename("All Files(*.*),*.*", , "Âûáðàòü ôàéëû", "Âûáðàòü", False)
If sPath = False Then Exit Sub
[B6] = sPath
End Sub
[/vba]

Автор - dronin
Дата добавления - 19.01.2014 в 01:20
Мир MS Excel » Вопросы и решения » Вопросы по VBA » отправка письма на определенную дату и время (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!