O Excel pode “ENVIAR” um email via Outlook baseado em critérios na planilha?

3

Existe um caminho fácil para obter Excel (2013) para, na verdade, send an email (Outlook or Exchange)
se certos critérios forem cumpridos?
Por exemplo:

if A2 is between 80 and 90, send email to G2.

A2 seria o resultado da data de início do funcionário para today's date , um resultado de 80 a 90 significando que a revisão de 90 dias é necessária.
O G2 teria o endereço de e-mail real do supervisor, gerente etc. Este processo aconteceria automaticamente sem ter que entrar em cada célula para pegar o endereço de e-mail e enviar o e-mail um por um.

    
por GPinSF 30.03.2017 / 01:34

1 resposta

2

Este Sub lê as células selecionadas (coluna) onde a condição é aplicada, execute o teste se True ler o email, assunto, corpo e envie o email e escreva Sent na mesma linha após enviar o email Funciona com o Outlook

Column 1    Column 2      Column 3         column 4   column 5       column 6  
80           email        Manager Name    Body Text   Employee Name  Sent or empty

Você pode alterar a célula (s, c + 2), célula (s, c + 4) ... para corresponder às suas colunas
por exemplo, G2 (coluna 2) será célula (s, c + 6) se A2 for coluna 1 e mover os outros de acordo com seus dados. Você tem que selecionar as células na coluna 1 e o Sub continuará

 Sub SendReminderMail()
        Dim s As Long, c As Long
        Dim OutLookApp As Object
        Dim OutLookMailItem As Object
        Dim strBody As String


    Set OutLookApp = CreateObject("Outlook.application")
    Set OutLookMailItem = OutLookApp.CreateItem(0)



     For Each Cell In Selection
     Cell.Select

     s = ActiveCell.Row
     c = ActiveCell.Column


       If Cells(s, c).Value > 80 And Cells(s, c).Value < 90 Then
        strBody = Cells(s, c + 3) & " " & Cells(s, c + 4)
          Set OutLookMailItem = OutLookApp.CreateItem(0)
          With OutLookMailItem

              .To = Cells(s, c + 1).Value
              .Subject = "Reminder: "
              .Body = "Dear " & Cells(s, c + 2).Value & "," & vbCrLf & vbCrLf & strBody

              .Display ' or .Send
          End With
          Cells(s, c + 5) = "Sent"
      End If

    Next Cell
End Sub
    
por 31.03.2017 / 13:11