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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2019, 08:15   #1
ariwex
Новичок
Джуниор
 
Регистрация: 02.05.2019
Сообщений: 1
По умолчанию Доработка макроса

Здравствуйте!

Постепенно стараюсь освоить создание макросов с нуля и благодаря вашему форуму и гуглу даже начинает получаться. Я написал макрос, который прикрепляю к этому посту. Его суть в том, что он проверяет пустая ли ячейка в третьем столбце, сравнивает дату во втором столбце с сегодняшней и при соблюдении условий отсылает эмеил через оутлук. В целом макрос работает, как я и задумывал, но теперь хотелось бы его немного изменить, но у меня совершенно нет идей, как это реализовать. Я бы хотел, чтобы макрос соблюдал все изначальные условия, но еще если в пятой колонке больше, чем одно совпадение по имени саплаера, то отсылался бы только один эмеил со всеми номерами из столбца 1, а не по отдельности. Надеюсь, что я понятно изложил свои мысли и это вообще возможно реализовать. Заранее благодарен за любую подсказку.
Вложения
Тип файла: rar oom123.rar (34.5 Кб, 7 просмотров)
ariwex вне форума Ответить с цитированием
Старый 02.05.2019, 12:38   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
Sub Send_Mail_Mass_1()
    
    
    Dim objOutlookApp As Object, objMail As Object
    Dim sTo As String, sSubject As String, sBody As String, sAttachment As String
    Dim lr As Long, lLastR As Long
    Dim Supplier As String
    Dim eMsg As String
    Dim dic As Object
    Dim varKey As Variant
    
    Application.ScreenUpdating = False
    On Error Resume Next
    
    Set objOutlookApp = GetObject(, "Outlook.Application")
    Err.Clear
    If objOutlookApp Is Nothing Then
        Set objOutlookApp = CreateObject("Outlook.Application")
    End If
    
    If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub
    objOutlookApp.Session.Logon
    
    Set dic = CreateObject("Scripting.Dictionary")
    
    lLastR = Cells(Rows.Count, 1).End(xlUp).Row
    For lr = 2 To lLastR
        Supplier = Cells(lr, 5).Value
        
        If Cells(lr, 3) = "" And Date - Cells(lr, 2) > 5 Then
            
            If (dic.exists(Supplier)) Then
                dic(Supplier) = dic(Supplier) & "<br>" & "PO " & Cells(lr, 1) & " Pos." & Cells(lr, 4)
            Else
                dic.Add Supplier, "PO " & Cells(lr, 1) & " Pos." & Cells(lr, 4)
            End If

        End If
        
    Next lr
    
    For Each varKey In dic.keys()
        Set objMail = objOutlookApp.CreateItem(0)
           Email = Application.WorksheetFunction.VLookup(varKey, Sheet2.Range("A1:B1000"), 2, False)
            With objMail
                .To = Email
                .Subject = "Unconfirmed orders reminder"

                .HTMLBody = "<p>Hi,</p>" & _
                "<p>&nbsp;</p>" & _
                "<p>Please send us order confirmation.&nbsp;</p>" & _
                "<p>Unconfirmed orders:</p>" & _
                dic(varKey) & _
                "<p>&nbsp;</p>" & _
                "<p>Best Regards,</p>" & _
                "<p>&nbsp;</p>"
                .Send
                '.display
            End With
    Next
    
    Set objOutlookApp = Nothing: Set objMail = Nothing
    Application.ScreenUpdating = True
End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доработка макроса копирования Enigmatic Microsoft Office Excel 2 26.02.2016 14:44
доработка макроса Komaryk Microsoft Office Excel 0 07.09.2012 10:35
доработка макроса по копированию данных Nick31 Microsoft Office Excel 1 16.05.2012 10:31
Доработка макроса Jonny B Microsoft Office Excel 5 07.01.2011 08:16
доработка макроса Kate-Rina Microsoft Office Excel 1 02.04.2010 05:33