Ir ao conteúdo
  • Cadastre-se

Excel VBA - Enviar informações de celulas no corpo do e-mail


Posts recomendados

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.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...