Страницы: 1
RSS
[ Закрыто ] Отправка электронной почты на адрес получателя из выделенной ячейки
 
Доброго дня всем. Вот такая задача: есть макрос,который отправляет письмо с вложениями по электронке на адрес,который находится в выделенной ячейке (ну или в указанном диапазоне). Необходимо дописать макрос так, что бы по нажатию на кнопку "отправить" в этой же строке но,допустим, в соседний столбец (или в указанный столбец) вводилась дада "сегодня" (т.е. дата отправки сообщения). Вот мой макрос
Код
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
Sub Отправить_Почту()
    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 = CreateObject("Outlook.Application")
    objOutlookApp.Session.Logon
    Set objMail = objOutlookApp.CreateItem(0)   'создаем новое сообщение
    'если не получилось создать приложение или экземпляр сообщения - выходим
    If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub
     
    sTo = ActiveCell    'Кому(можно заменить значением из ячейки - sTo = Range("A1").Value)
    sSubject = Range("E1").Value  'Тема письма(можно заменить значением из ячейки - sSubject = Range("A2").Value)
    sBody = Range("D5").Value   'Текст письма(можно заменить значением из ячейки - sBody = Range("A3").Value)
    sAttachment = Range("D6").Value    'Вложение(полный путь к файлу. Можно заменить значением из ячейки - sAttachment = Range("A4").Value)
     
    'создаем сообщение
    With objMail
        .To = sTo 'адрес получателя
        .CC = "" 'адрес для копии
        .BCC = "" 'адрес для скрытой копии
        .Subject = sSubject & "  " & Range("D4") 'тема сообщения
        .Body = sBody 'текст сообщения
        .Attachments.Add sAttachment 'чтобы отправить активную книгу вместо sAttachment указать ActiveWorkbook.FullName
        .Send 'Display - просмотреть сообщение, Send - без просмотра
    End With
  
    Set objOutlookApp = Nothing: Set objMail = Nothing
    Application.ScreenUpdating = True
End Sub
Для меня не легкая задача. Верю в Вас, Гуру!!!
 
последней строкой в макросе отправки:
Код
1
ActiveCell.next = now ' дата в следующий столбец

или так
Код
1
ActiveCell.entirerow.cells(5) = now ' дата в столбец 5 той же строки
 
Игорь, все просто...???!!!!  Работает! Спасибо за потраченное время!!!!
 
Игорь, добрый день! Разрешите еще раз обратиться за помощью.... Ископал все ресурсы-решения не нашел!...Каким образом дописать или изменить Ващу строку в коде так, что бы дата в ячейке менялась один раз за сутки (т.е. если отправлял почту сегодня пять раз, то дата меняется один первый раз, и следующее изменение даты возможно только завтра, или позже,когда отправлю почту еще раз, но не сегодня). Дело в том, что изменения в ячейке у меня записываются в примечание, т.е. если в течении дня макрос срабатывает несколько раз, то примечание к ячейке "засоряются" датами сегодняшнего дня, что мне совершенно не нужно. Нашел код,который меняет дату однократно за все время, что мне тоже не подходит, т.к. если изменения в ячейке произойдут на следующий день,то в примечании это должно отразиться однократно и следующим днем. Заранее благодарен!
 
Так ведь уже решили всё с примечаниями: http://planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=75558&TITLE_SEO=75558-dobavlenie-daty-segodnya-makrosom&buf_fid=1
 
Hugo, приветствую. На листе уже работает макрос с примечаниями
Код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Worksheet_Change(ByVal Target As Range)
'îòñëåæèâàåì èçìåíåíèÿ òîëüêî â äèàïàçîíå "A1:B10"
    If Intersect(Target, Me.Range("J3:M400")) Is Nothing Then Exit Sub
    'ñðàâíèâàåì íîâîå çíà÷åíèå ñ ïðåæíèì
    If CStr(Target.Value) <> sValue Then
        Dim oComment As Comment
        On Error Resume Next
        Set oComment = Target.Comment
        If oComment Is Nothing Then
            Target.AddComment Target.Text & " " & Format(Now, "dd.mm.yy")
        Else
            oComment.Text Target.Text & " " & Format(Now, "dd.mm.yy") & Chr(10) & oComment.Text
        End If
    End If
    
End Sub
Как мне к нему приладить Ваш вариант с однократным введением даты в примечание? В моем случае мне нужно, что бы Ваш вариант работал в диапазоне "L3:L400", но в остальном диапазоне  "J3:K400;M3:M400" примечания записывались в нужном количестве (т.е. сколько изменений,столько же и записей примечаний)
 
Давайте обсуждать в одной теме одну проблему. Не надо все проблемы валить в кучу. Какое отношение запись даты в примечание имеет к "взять адрес из активной ячейки"? С правилами ознакомьтесь. Тема закрыта.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Читают тему
Наверх
Loading...