Vídeo recomendado
https://youtu.be/diWPPPhW-9E

adaptar envio de email [resolvido]

Esclarecimentos e dúvidas sob o Modelo de Aplicativo de Cadastro em VBA no Microsoft Excel publicado no site e blog http://www.tomasvasquez.com.br
jrm
Colaborador
Colaborador
Mensagens: 11
Registrado em: Qua Out 16, 2013 6:15 pm

adaptar envio de email [resolvido]

Mensagem por jrm »

OLa a todos os execlistas,

Mais uma vez preciso da vossa ajuda, estou com alguma dificuldade em adaptar uma nova parte ao modelo de cadastaro
Passo a exlicar:
eu acrescentei uma coluna que define a validade dos dados como "valido" ou "caducado" coluna AF, queria sempre que o estado seja Caducado (coluna AF) envie email com a informação das colunas AA, AB,AC,AD e AE , no texto do email.
encontrei esta macro mas estou com dificuldade em fazer com que va buscar os dados, esta macro seria para ser acionada por um botão no form cadastro.
Sub Enviar_EMail()

Dim OutApp As Object
Dim OutMail As Object
Dim cell As Range

Application.ScreenUpdating = False
Set OutApp = CreateObject("Outlook.Application")

On Error GoTo limpa

For Each cell In Columns("N").Cells.SpecialCells(xlCellTypeConstants)
'verifica se o email é valido e se o cliente possui o estados A (atrasado)
If cell.Value Like "?*@?*.?*" And LCase(Cells(cell.Row, "AF").Value) = "a" Then
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = cell.Value
.Subject = "Aviso"
.Body = "Caro " & Cells(cell.Row, "B").Value _
& vbNewLine & vbNewLine & _
"Entre em contato com nosso serviço de cobrança " & _
"os seguintes documentos estão caducados" '(aqui seria para inserir os valores das colunas AA, AB,AC,AD e AE)
'Podemos enviar um anexo
.Attachments.Add ("c:\dados\carta.txt")
.Send
End With
On Error GoTo 0
Set OutMail = Nothing
MsgBox ("Email enviado com sucesso..." & " para " & Cells(cell.Row, "B").Value)
End If
Next cell
limpa:
Set OutApp = Nothing
Application.ScreenUpdating = True

End Sub
Editado pela última vez por jrm em Seg Dez 16, 2013 5:57 pm, em um total de 1 vez.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Marciel Silva
Colaborador
Colaborador
Mensagens: 98
Registrado em: Qui Nov 01, 2012 2:37 pm

Re: adaptar envio de email

Mensagem por Marciel Silva »

jrm, boa tarde!

Anexe uma planilha de exemplo para ficar mais fácil a solução do seu problema!!

Att,


Marciel Silva
Colaborador
Colaborador
Mensagens: 98
Registrado em: Qui Nov 01, 2012 2:37 pm

Re: adaptar envio de email

Mensagem por Marciel Silva »

Boa tarde!

Veja se esse exemplo lhe atende.

Digite "Caducado" em Status para abrir o outlook com as informações!!!

Att,
Anexos
adaptar envio de email.zip
(16.23 KiB) Baixado 355 vezes


Avatar do usuário
Valderei
Colaborador
Colaborador
Mensagens: 47
Registrado em: Qui Dez 27, 2012 9:57 pm
Localização: Caxias do Sul - RS

Re: adaptar envio de email

Mensagem por Valderei »

Olá Maciel Silva.
Estou com o mesmo código que o amigo lhe pediu ajuda.
Minha intenção é semelhante ao que ele quer, porém pretendo que seja enviado um aviso ao nome que estiver aparecendo no meu Formulário.

A ideia é de que eu possa escolher quando enviar um e-mail ou não, terei um TextBox com o nome do destinatário e outro TextBox com o endereço de e-mail, tudo isso salvo na planilha base, e caso queira enviar um e-mail para ele avisando da inclusão de um novo registro, clicaria no botão Enviar E-mail de Alerta, caso contrário não faria a notificação.
Hoje meu formulário mantem a planilha "Base" oculta, faço isto para evitar alterações de dados e perda de informações.

O código que tenho é idêntico ao do amigo jrm, apenas envia o e-mail caso a coluna "O" tenha o dado "Sim" e também se a planilha base estiver visivel.
Então o plano é de ter o botão de envio sempre que desejar e também a planilha base ocultada.

Vou anexar meu formulário para que possa verificar com mais facilidade o que gostaria que ocorresse e ver se há condição.
Anexos
R.Q 047 - R.I.N.C - Envio E-mail.rar
(459.83 KiB) Baixado 362 vezes
Envio E-mail.JPG
Envio E-mail.JPG (139.4 KiB) Exibido 7811 vezes


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Marciel Silva
Colaborador
Colaborador
Mensagens: 98
Registrado em: Qui Nov 01, 2012 2:37 pm

Re: adaptar envio de email

Mensagem por Marciel Silva »

Valderei,

Baixei sua planilha!

Estou cadastrando um novo registro como exemplo, porém o campo email não aceita digitação. Você colocou alguma regra para aceitar digitar?
Eu não encontrei nada impedindo!

Att,


Avatar do usuário
Valderei
Colaborador
Colaborador
Mensagens: 47
Registrado em: Qui Dez 27, 2012 9:57 pm
Localização: Caxias do Sul - RS

Re: adaptar envio de email

Mensagem por Valderei »

Olá Maciel.
Dentro do código do formulário o campo de E-mail esta como "Locked=True", precisas entrar lá e desbloquear, deixei bloqueado pois será carregado automaticamente quando puxar o nome do coordenador.

É no "Private Sub HabilitaControles()"

Depois disso poderá digitar dentro do TextBox, tanto este quando o do nome do coordenador estão "Locked=True".


Obrigado pela ajuda.


Marciel Silva
Colaborador
Colaborador
Mensagens: 98
Registrado em: Qui Nov 01, 2012 2:37 pm

Re: adaptar envio de email

Mensagem por Marciel Silva »

Valderei,

Mais uma dúvida!!!

O email vai ser destinado a quem? Analista ou para o coordenador?

att,


Avatar do usuário
Valderei
Colaborador
Colaborador
Mensagens: 47
Registrado em: Qui Dez 27, 2012 9:57 pm
Localização: Caxias do Sul - RS

Re: adaptar envio de email

Mensagem por Valderei »

Olá Maciel.
Será sempre o nome do Coordenador que o e-mail será direcionado.


jrm
Colaborador
Colaborador
Mensagens: 11
Registrado em: Qua Out 16, 2013 6:15 pm

Re: adaptar envio de email

Mensagem por jrm »

Boa noite

Peço desde já desculpa por ter demorado tanto a responder, no entretanto também já consegui resolver o meu problema. Agradeço muito a ajuda. Faltava apenas um pormenor que eu não estava a entender, bastou acrescentar a localização dos dados Set wbCadastro = Workbooks.Open(Filename:=caminhoCompleto, ReadOnly:=True)
.
Usei o seguinte código:

Private Sub Email_Click()
Dim OutApp As Object
Dim OutMail As Object
Dim cell As Range
Dim caminhoCompleto As String

caminhoCompleto = wbCadastro.FullName

Set wbCadastro = Workbooks.Open(Filename:=caminhoCompleto, ReadOnly:=True)

Set OutApp = CreateObject("Outlook.Application")

On Error GoTo limpa


With wsCadastro
For Each cell In Columns("N").Cells.SpecialCells(xlCellTypeConstants)
'verifica se o email é valido e se o cliente possui o estados A (atrasado)
If cell.Value Like "?*@?*.?*" And LCase(Cells(cell.Row, "AF").Value) = "caducada" Then
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = cell.Value
.Subject = "teste"
.Body = "Exmos " & Cells(cell.Row, "B").Value _
& vbNewLine & vbNewLine & _
"Entre em contato com nosso serviço de cobrança " & _
"para tratar assunto de seu interesse com urgência"
'Podemos enviar um anexo
.Attachments.Add ("c:\dados\carta.txt")
.Send
End With
On Error GoTo 0
Set OutMail = Nothing
MsgBox ("Email enviado com sucesso..." & " para " & Cells(cell.Row, "B").Value)
End If
Next cell
limpa:
Set OutApp = Nothing
Application.ScreenUpdating = True
End With

End Sub

Mas aproveito para pedir mais umas ajudas uma vez que eu sou muito pouco entendido em vba, mas vi algures por aqui um exemplo em que todas as folhas do livro ficam ocultas gostava de saber como é possível fazer isso. o exemplo que eu encontrei é gestão de contas do Meste Poiamen,.
Mais uma vez muito obrigado.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder