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