none
VBA não funciona em célula com fórmula RRS feed

  • Pergunta

  • Bom dia. 

    Estou utilizando em uma planilha um código que envia um e-mail automático para determinado endereço, quando o texto de uma das células é alterado para "Fazer contato".

    Funciona perfeitamente quando eu altero manualmente a informação, porém, quando utilizo a função "SE" na célula e a informação "Fazer contato" entra de forma automática e não manual, não funciona e o e-mail não é enviado. 

    Saberiam me explicar por que isso ocorre e me ajudar a resolver o problema? 

    O código que estou utilizando é o seguinte: 

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim OutApp As Object
    Dim OutMail As Object
    Dim texto As String

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    linha = ActiveCell.Row - 1
    If Target.Address = "$E$" & linha Then

    If Planilha1.Cells(linha, 5) = "Fazer contato" Then
    texto = "Prezado, " & vbCrLf & vbCrLf & _
    "É necessário entrar em contato com a empresa " & Planilha1.Cells(linha, 2) & "," & " para tratar da proposta já enviada." & vbCrLf & vbCrLf & _
    "Seguem abaixo os dados necessários:" & vbCrLf & _
    "PESSOA DE CONTATO: " & Planilha1.Cells(linha, 7) & vbCrLf & _
    "TELEFONE: " & Planilha1.Cells(linha, 6) & vbCrLf & _
    "PROPOSTA NÚMERO: " & Planilha1.Cells(linha, 4) & vbCrLf & vbCrLf & _
    "Atenciosamente " & vbCrLf & vbCrLf & _
    "Comercial"


    With OutMail
    .To = "" & Planilha1.Cells(linha, 1) & ""
    .CC = ""
    .BCC = ""
    .Subject = "Realizar contato - Prospect"
    .Body = texto
    .Send
    End With
    End If

    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing
    End If
    End Sub

    quinta-feira, 13 de fevereiro de 2020 13:12