Notifications
Clear all

Excel VBA envio por email ao mudar o STATUS automaticamente

23 Posts
6 Usuários
0 Reactions
4,328 Visualizações
(@m-bessa1)
Posts: 12
Active Member
Topic starter
 

Bom dia

Na planilha em anexo já montada, a macro para enviar e-mail só funciona se clicar dentro da célula e dar Enter; ja tentei mudar mas minha linha de raciocínio esgotou

O que preciso: toda vez que as células vez que as coluna F / P / S mudar para ATRASADA , e uma sequencia de dados dispara um e-mail automático
um e-mail automaticamente para o e-mail cadastrado na coluna A

A Planilha Está funcionando mas somente se eu dar 2 clicks
Ajudem por gentileza... Segue Planilha feita em anexo... Nâo esqueçam de colocar seu e-mail na coluna A para funcionar enviando para o seu e-mail...

 
Postado : 02/08/2016 7:03 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

m.bessa1,

Bom dia!

Desculpe... tem como compactar com ZIP?

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 02/08/2016 7:44 am
(@m-bessa1)
Posts: 12
Active Member
Topic starter
 

Bom dia

segue em ZIP

 
Postado : 02/08/2016 7:58 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

m.bessa,

OK.

Para testar, insira seu email na coluna A e na linha onde for aparecer a palavra ATRASADA em qualquer uma das colunas F, P ou S. Veja se é assim.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 02/08/2016 8:47 am
(@m-bessa1)
Posts: 12
Active Member
Topic starter
 

Caro Wagner

a principio era isso mesmo , vou fazer mais alguns teste aqui e te informo , mais desde ja muito obrigado

 
Postado : 02/08/2016 9:00 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

OK.

Por favor, quando estiver OK, vote positivamente.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 02/08/2016 9:14 am
engeel2014
(@engeel2014)
Posts: 207
Estimable Member
 

Tente adaptar o código abaixo, talvez lhe ajude:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 
On Error GoTo Sair
If Intersect(Target, Range("B11:H16")) Then ' aqui você altera para o endereço desejado

'seu código

End If

Sair:
Exit Sub

End Sub

Lucélio Ferreira dos Santos
Eng. Eletricista
CREA: DF-7165/TD
[email protected]

 
Postado : 02/08/2016 9:57 am
(@m-bessa1)
Posts: 12
Active Member
Topic starter
 

Caro Wagner

mais 2 perguntas :
1 Tem como toda vez que entrar em atrasada o excel disparar o e-mail automático sem precisar abria a planilha
2 No caso das Row 16 e 19 ela puxa o texto da Row 06 , tem como para cada eu puxar uma individual ou seja o texto vai ser respondido não atrasado

 
Postado : 02/08/2016 10:03 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

m.bessa1,

Respondendo as suas perguntas:

1 Tem como toda vez que entrar em atrasada o excel disparar o e-mail automático sem precisar abria a planilha
R - Se tem... eu naõ sei como fazer. aguarde um outro colega se manifestar sobre o assunto ou abra uma outra demanda.
2 No caso das Row 16 e 19 ela puxa o texto da Row 06 , tem como para cada eu puxar uma individual ou seja o texto vai ser respondido não atrasado
R _ Aqui... eu não entendi o que você quis dizer.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 02/08/2016 10:58 am
(@m-bessa1)
Posts: 12
Active Member
Topic starter
 

quando me manda um e-mail vai conter as informações abaixo porem ele so funciona para primeira
pois as outras respostas ele vai puxa que ja foi respondido , as etapas diferente , gostaria que a cada etapa atrasada tivesse um texto especifico quando mandar o e-mail , vou dar uma exemplo Por exemplo na Row 06 ele puxa a prazo da coluna d e status da F o da row 16 gostaria que me mandasse o Prazo da coluna M e status da coluna P , espero que tenha sido mais claro

If Plan1.Cells(Target.Row, 6) = "ATRASADA"
texto = "Prezado(a) " & Plan1.Cells(Target.Row, 1) & "," & vbCrLf & vbCrLf & _
"A O.S. " & Plan1.Cells(Target.Row, 7) & " aberta em " & _
Plan1.Cells(Target.Row, 2) & " foi concluída." & vbCrLf & _
" Veja informações abaixo:" & vbCrLf & _
" Status: " & Plan1.Cells(Target.Row, 6) & vbCrLf & _
" Prazo para ação: " & Plan1.Cells(Target.Row, 5) & vbCrLf & vbCrLf & _
"Atenciosamente," & vbCrLf & _

If Plan1.Cells(Target.Row, 16) = ""ATRASADA"
texto = "Prezado(a) " & Plan1.Cells(Target.Row, 1) & "," & vbCrLf & vbCrLf & _
"A O.S. " & Plan1.Cells(Target.Row, 7) & " aberta em " & _
Plan1.Cells(Target.Row, 2) & " foi concluída." & vbCrLf & _
" Veja informações abaixo:" & vbCrLf & _
" Status: " & Plan1.Cells(Target.Row, 16) & vbCrLf & _
" Prazo para RNC: " & Plan1.Cells(Target.Row, 5) & vbCrLf & vbCrLf & _
"Atenciosamente," & vbCrLf & _

 
Postado : 02/08/2016 11:44 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Acho que entendi...

No entanto, ficará muito difícil um código genérico "entender" quais são as linhas onde o texto deverá ser diferente. A não ser que você pense em outra lógica para esse tipo de especificidade.

Por exemplo, você pode agora, nesse momento em que está dizendo que quando for a linha 6, o testo deve pegar as informações de outras colunas, fazer um mais um IF, dentro da rotina que já está escrita, e colocar essa condição. No entanto, isso ficará fixo. Isso significa que se amanhã ou depois, por exemplo, uma única linha for inserida na sua planilha antes da linha 6, a macro não mais funcionará.

Não sei se fui claro...

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 02/08/2016 12:52 pm
(@m-bessa1)
Posts: 12
Active Member
Topic starter
 

Boa tarde desculpe por estar sendo chato mais pode me dar um exemplo , de como poderia fazer

 
Postado : 02/08/2016 1:25 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Bom dia!

Sub Exemplo()
        If Plan1.Cells(Target.Row, 6) = "ATRASADA" Or Plan1.Cells(Target.Row, 16) = "ATRASADA" Or Plan1.Cells(Target.Row, 19) = "ATRASADA" Then
            texto = "Prezado(a) " & Plan1.Cells(Target.Row, 1) & "," & vbCrLf & vbCrLf & _
                    "A O.S. " & Plan1.Cells(Target.Row, 7) & " aberta em " & _
                    Plan1.Cells(Target.Row, 2) & " foi concluída." & vbCrLf & _
                    " Veja informações abaixo:" & vbCrLf & _
                    "    Status: " & Plan1.Cells(Target.Row, 6) & vbCrLf & _
                    "    Ação tomada: " & Plan1.Cells(Target.Row, 5) & vbCrLf & vbCrLf & _
                    "Atenciosamente," & vbCrLf & _
                    "Help Desk"
         'Exemplo para a linha 6. NÃO SEI QUAL É A COLUNA DE PRAZO QUE VOCÊ QUER. Adapte no código para a coluan desejada. _
         se você quer a linha 6, onde tiver Target.Row deve ser substituído pelo número 6. O comando Plan1.Cells(6, 16) se refere sempre a _
         LINHA, COLUNA. Assim, onde você quer que pegue o prazo da coluna D, substitua o segundo parâmetro (COLUNA) pelo número 4.
        ElseIf Plan1.Cells(6, 6) = "ATRASADA" Or Plan1.Cells(6, 16) = "ATRASADA" Or Plan1.Cells(6, 19) = "ATRASADA" Then
            texto = "Prezado(a) " & Plan1.Cells(6, 1) & "," & vbCrLf & vbCrLf & _
                    "A O.S. " & Plan1.Cells(6, 7) & " aberta em " & _
                    Plan1.Cells(6, 2) & " foi concluída." & vbCrLf & _
                    " Veja informações abaixo:" & vbCrLf & _
                    "    Status: " & Plan1.Cells(6, 6) & vbCrLf & _
                    "    Ação tomada: " & Plan1.Cells(6, 5) & vbCrLf & vbCrLf & _
                    "Atenciosamente," & vbCrLf & _
                    "Help Desk"
            With OutMail
                .To = Plan1.Cells(Target.Row, 1)
                .CC = ""
                .BCC = ""
                .Subject = "Título do email"
                .Body = texto
                .Send
            End With
            On Error GoTo 0

            Set OutMail = Nothing
            Set OutApp = Nothing
        End If
    Application.EnableEvents = True
End Sub

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 03/08/2016 5:56 am
(@m-bessa1)
Posts: 12
Active Member
Topic starter
 

Muito obrigado fechou

 
Postado : 03/08/2016 11:28 am
(@m-bessa1)
Posts: 12
Active Member
Topic starter
 

Bom dia

com ajuda do amigos deste fórum criei uma planilha que dispara e-mail automático toda vez que as colunas F / P / S estão atrasadas , e está ótima , só que tem um problema e não não esta enviando auto. quando abro a planilha e esta atrasado algum status não envia so envia se mudar manual , que gostaria : que toda vez que eu abrir a planilha e alguma desta esteja em atraso seja enviado o e-mail , mesmo que ja tenha passado alguns dias ou ate eu mudar o status toda vez que abri seja enviado o e-mail com status de atrasado

espero que tenha sido claro , e os amigos entendam minha solicitação

 
Postado : 05/08/2016 5:24 am
Página 1 / 2