Jump to content
dlemos

Enviar e-mail utilizando VBA

Recommended Posts

dlemos

Boa tarde

Gostaria de saber se alguém me podia ajudar com esta questão. O seguinte código envia via VBA um e-mail para joao@gmail.com, contendo informação acerca do array fornecedor:


public sub enviaEmail()

Dim Email_Subject, Email_Send_From, Email_Send_To, _
Email_Cc, Email_Bcc, Email_Body As String
Dim Mail_Object, Mail_Single As Variant

Email_Subject = "ALERTA AUTOMÁTICO - CONTRATOS"
Email_Send_From = "joao@gmail.com"
Email_Send_To = "joao@gmail.com"
'Email_Cc = "databison@gmail.com"
'Email_Bcc = "databison@gmail.com"

'If Time > "14:30:00" Then
    Email_Body = "Boa tarde - verifique os erros nos contratos (fundo vermelho). O primeiro fornecedor a verificar é: " & fornecedor(1) & "."
    
'End If

'If Time < "12:30:00" Then
'    Email_Body = "Bom dia. Existe informação a carregar . É favor consultar o ficheiro de carregamentos"
'End If

MsgBox "E-mail enviado para joao@gmail.com", vbInformation, "OK"


On Error GoTo debugs
Set Mail_Object = CreateObject("Outlook.Application")
Set Mail_Single = Mail_Object.CreateItem(0)
With Mail_Single
.Subject = Email_Subject
.to = Email_Send_To
.cc = Email_Cc
.BCC = Email_Bcc
.Body = Email_Body
.send
End With
debugs:
If Err.Description <> "" Then MsgBox Err.Description

End Sub

O que eu pretendia era no corpo do e-mail enviar todo o conteúdo do array fornecedor, pois trata-se de um array dinâmico que vai sendo preenchido de acordo com critérios definidos numa outra função.

Obrigado desde já.

Share this post


Link to post
Share on other sites
dlemos

Olá bom dia

O lin é interessante mas infelizmente resposta ao que pretendo :thumbsup:

O que eu pretendo é enviar um array de strings, preenchido a partir de uma tabela em Access, para um e-mail adress.

Neste caso o específico o array é fornecedor..

Share this post


Link to post
Share on other sites
jpaulino

O que eu pretendo é enviar um array de strings, preenchido a partir de uma tabela em Access, para um e-mail adress.

Neste caso o específico o array é fornecedor..

Mas não tens o array já com informação? E como queres colocar a informação ... separado por virgula?

Só tens de fazer, segundo o que entendi, um ciclo no array. Algo como isto (não testado):

Dim elemento as Variant
Dim resultado As String
For each elemento In fornecedor
       resultado = resultado & elemento & ", "
Next

msgbox "o texto que já tens " & resultado

Pode depois tirar a virgula final, usando a função Left()

 


Ah, e esse tratamento de erro está mal feito ... deves fazer (uma vez mais não testado):

On error goto debugs

      ' código

Exit Sub (ou function)
debugs:
    MsgBox Err.Description

Share this post


Link to post
Share on other sites
dlemos

jpaulino obrigado como é que não me lembrei disso!

:)

Mais uma vez obrigado aos dois pela disponibilidade!

Share this post


Link to post
Share on other sites
_FOCUS_

Boas Pessoal,

Aproveitando este topico de forma a não abrir um desnecessário, e como suponho que seja muito simples mas como não sou entendido em VBA torna-se complicado  :P :P

Eu pretendia enviar um e-mail apenas como alerta, ou seja, para o destinatário especifico e com apenas um assunto especifico (ex: "nova encomenda), ja pesquisei muito sobre o assunto mas apenas encontro códigos que geram anexos das folhas ou livro e isso não pretendo.

Como deverá ser o codigo??

Obrigado

Share this post


Link to post
Share on other sites
jpaulino

E exactamente o que este código faz ... tens de experimentar primeiro (e abrir um novo tópico se tiveres dúvidas)

Share this post


Link to post
Share on other sites
_FOCUS_

Devido a esta linha "Set Mail_Object = CreateObject("Outlook.Application")" pensei que iria criar um anexo.

Obrigadíssimo

Share this post


Link to post
Share on other sites
Sérgio Nascimento

Bom dia,

Para não abrir um novo tópico, e em virtude da minha dúvida ser apenas um complemento à situação abordada.

Tendo por base o código que foi apresentado, como faço para indicar que o documento Word que tenho aberto (e onde está o código) será enviado como anexo pelo Outlook (que é o serviço de correio eletrónico utilizado)? Mantendo claro o assunto e o remetente indicado anteriormente no código?

Obrigado

Edited by Sérgio Nascimento

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.