Notifications
Clear all

E-mail automático com alteração de célula (Excel VBA)

3 Posts
2 Usuários
0 Reactions
1,049 Visualizações
 FCP
(@fcp)
Posts: 9
Active Member
Topic starter
 

Olá mestres,
Tenho uma macro para enviar e-mail sob algumas condições em cada célula. A mesma está funcionando certinho, porém somente quando escreve nas respectivas células e pressiono enter.
Nestas células existe formulas que alteram automaticamente o texto de cada célula devido a algumas condições, mas quando a fórmula altera o texto da célula a macro não entende e não manda o email.

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 = "$N$" & linha Then

        If Plan1.Cells(linha, 14) = "Agendar Férias" Then
            texto = "Prezado(a) " & Plan1.Cells(linha, 3) & vbCrLf & vbCrLf & _
                    "Você precisa agendar suas férias para evitar transtornos" & vbCrLf & vbCrLf & _
                    "Acesse o seguinte endereço: S:Correia PintoGSAProcesso PESSOAS2016Controle de Férias.xlsm " & vbCrLf & vbCrLf & vbCrLf & _
                                "AO ACESSAR A PLANILHA PREENCHA OS SEGUINTES PASSOS:" & vbCrLf & vbCrLf & _
                                        "   1. Preencha a data das últimas férias;" & vbCrLf & _
                "   2. Preencha a data de início e final de suas próximas férias;" & vbCrLf & _
                "   3. Acesse o WORKDAY para preencher a documentação;" & vbCrLf & _
                "   4. Aguarde a aprovação de seu Gestor;" & vbCrLf & _
                "   5. Assine a documentação no RH;" & vbCrLf & _
                "   6. Aproveite suas Férias;" & vbCrLf & vbCrLf & vbCrLf & _
                "Atenciosamente," & vbCrLf & _
                "Facilitadores de GSA - PESSOAS "
                
                With OutMail
            .To = Plan1.Cells(linha, 2)
            .CC = Plan1.Cells(linha, 8)
            .BCC = ""
            .Subject = "Agendamento de Férias"
            .Body = texto
            .Display   'Utilize Send para enviar o email sem abrir o Outlook
        End With
        On Error GoTo 0

        Set OutMail = Nothing
        Set OutApp = Nothing
        End If

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

        If Plan1.Cells(linha, 14) = "OK" Then
            texto = "Prezado(a) " & Plan1.Cells(linha, 3) & vbCrLf & vbCrLf & _
                    "Você agendou suas férias para o período de (" & Plan1.Cells(linha, 10) & ") a (" & Plan1.Cells(linha, 11) & ") com um total de (" & Plan1.Cells(linha, 12) & ") dias e (" & Plan1.Cells(linha, 13) & ") dias de abono. " & vbCrLf & vbCrLf & vbCrLf & _
"PRÓXIMOS PASSOS:" & vbCrLf & vbCrLf & _
                                "   1. Agora acesse o WORKDAY para preenchimento da documentação;" & vbCrLf & _
                "   2. Aguarde a aprovação de seu Gestor;" & vbCrLf & _
                "   3. Assine a documentação no RH;" & vbCrLf & _
                "   4. Aproveite suas Férias;" & vbCrLf & vbCrLf & vbCrLf & _
                "Atenciosamente," & vbCrLf & _
                "Facilitadores de GSA - PESSOAS "

        With OutMail
            .To = Plan1.Cells(linha, 2)
            .CC = Plan1.Cells(linha, 8)
            .BCC = ""
            .Subject = "Férias Agendadas"
            .Body = texto
            .Display   'Utilize Send para enviar o email sem abrir o Outlook
        End With
        On Error GoTo 0

        Set OutMail = Nothing
        Set OutApp = Nothing
    End If
    End If
    End If
    
    End Sub
 
Postado : 16/03/2016 7:22 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Essa macro só funciona qdo a célula alterada é na coluna N. O q exatamente vc quer mudar?

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 16/03/2016 8:26 am
 FCP
(@fcp)
Posts: 9
Active Member
Topic starter
 

Essa macro só funciona qdo a célula alterada é na coluna N. O q exatamente vc quer mudar?

Olá caro fernando.fernandes,
quando a alteração da célula N é feita manual tudo funciona certinho. Mas o problema que a alteração da célula N é feita a partir de uma fórmula, e quando isso é feito a macro não roda.
Se quiser te envio a planilha

 
Postado : 16/03/2016 8:39 am