Boa tarde, tenho uma lógica que está funcionando plenamente, porém quero adicionar algumas informações.
Com este cógieo em VBA, ao alterar a coluna D(Pedido) para comprar ele envia um e-mail para mim informando que necessito abrir a planilha, quero acrescentar uma logica, que ao enviar o e-mail, também envie no corpo do e-mail as informações contidas na linha.
Ex:
CÓDIGO DESCRIÇÃO QATUAL PEDIDO
1 BUCHA DO CENTRADOR DE CARGALO 10
2 CABO FLEX 750V 1,00MM 5 Comprar
Ao ficar 'comprar' na coluna D do item de código 2, é enviado no copor do e-mail as informações dele(A2, B2 e C2).
e da mesma forma funcionar para quando tiver An, Bn e Cn, onde a coluna Dn, fique comprar envie essas informações contidas na linha n.
Segue o código:
Private Sub Worksheet_Calculate()
Dim c As Range
Dim i As Long
Dim UL As Long
Dim bAlt As Boolean
UL = Cells(Rows.Count, 4).End(xlUp).Row
On Error Resume Next
If UBound(OldVal, 1) = 0 Then
OldVal = Range("D2:D" & UL).Value2
End If
On Error GoTo 0
i = 1
For Each c In Range("D2:D" & UL)
If c.Value2 <> OldVal(i, 1) And _
c.Value2 = "Comprar" Then
bAlt = True
End If
i = i + 1
Next
OldVal = Range("D2:D" & UL).Value2
If bAlt = True Then
Call EnviaEmail
bAlt = False
End If
End Sub
Function EnviaEmail()
Dim iMsg, iConf, Flds
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields
schema = "http://schemas.microsoft.com/cdo/configuration/"
Flds.Item(schema & "sendusing") = 2
'Configura o smtp
Flds.Item(schema & "smtpserver") = "smtp.gmail.com"
'Configura a porta de envio de email
Flds.Item(schema & "smtpserverport") = 465
Flds.Item(schema & "smtpauthenticate") = 1
'Configura o email do remetente
Flds.Item(schema & "sendusername") = ""
'Configura a senha do email remetente
Flds.Item(schema & "sendpassword") = ""
Flds.Item(schema & "smtpusessl") = 1
Flds.Update
With iMsg
'Email do destinatário
.To = ""
'Seu email
.From = ""
'Título do email
.Subject = "Isto é um teste de Envio de e-mail"
'Mensagem do e-mail, você pode enviar formatado em HTML
.HTMLBody = "Mensagem enviada com o gmail"
'Seu nome ou apelido
.Sender = "Teste"
'Nome da sua organização
.Organization = ""
'e-mail de responder para
.ReplyTo = ""
Set .Configuration = iConf
.Send
End With
Set iMsg = Nothing
Set iConf = Nothing
Set Flds = Nothing
End Function
Não sei se criei o tópico no local certo,
Obrigado.