Notifications
Clear all

Ajuda Macro de e-mail

9 Posts
3 Usuários
0 Reactions
2,040 Visualizações
(@ragnobo)
Posts: 42
Trusted Member
Topic starter
 

Olá

Antes de mais nada procurei no forum mais não consegui encaixar nenhuma macro as minhas necessidades.

Tenho 1 aba chamada Ranking Anual e outra chamada EMails

Na aba ranking anual eu selecionei uma area para gerar um arquivo pdf.

Na aba emails na coluna B tenho os emails para quem a area selecionada da planilha ranking anual deverá ser enviada.

Gostaria que quando a pessoa cliclar no botão enviar e-mail fosse enviado automaticamente usando o outlook a area selecionada para os emails cadastrados na coluna B

Obrigado e fico no aguardo

 
Postado : 10/03/2013 3:42 pm
(@geovanerocha)
Posts: 51
Trusted Member
 
Sub EMail_Automático()
    '==========================================================
    'PARA REMESSA DE E-MAIL AUTOMÁTICO DE DENTRO DAS APLICAÇÕES
    '==========================================================

    Dim olApp As Object, olMail As Object
    If Range("B1").Value >= Range("a1").Value Then
        Set olApp = CreateObject("Outlook.Application")
        Set olMail = olApp.CreateItem(0)
   
        'olMail.From = "fulano@hotmail.com" 'Quem está enviando o e-mail. Pode deixar desabilitado. _
        O Outlook vai usar o usuário atualmente logado no correiio e enviar em nome deste.
        olMail.Subject = "Insira o assunto aqui " 'Campo Assunto
        olMail.Body = "Insira a mensagem aqui " 'Campo referente a mensagem que se quer enviar
        olMail.To = "fulano@hotmail.com" 'Endereços dos destinatários
        olMail.cc = "fulano@hotmail.com" 'Campo Com cópia
        olMail.Attachments.Add "c:rankrank.pdf" 'Arquivo a inserir
        olMail.send 'Envio direto. Se quiser ver primeiro o e-mail para depois enviar, substitua _
        esse comando por Display
       
        Set olApp = Nothing
        Set olMail = Nothing
    End If
End Sub
 
Postado : 10/03/2013 6:15 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Leia:
http://www.rondebruin.nl/mail/templates.htm
http://msdn.microsoft.com/en-us/library ... 08919.aspx
http://chandoo.org/wp/2012/04/23/send-m ... d-outlook/

Veja se pode te ajudar.

Sub E_Mail()
Dim MyArr As Variant
MyArr = Sheets("E-Mail").Range("lista")
ActiveWorkbook.SendMail Recipients:=MyArr, _
Subject:="SeuArquivo"
End Sub
Sub test()
    Dim OutApp As Object
    Dim OutMail As Object
    Dim Recipients As String, c As Range
    For Each c In Range("a1").CurrentRegion
        Recipients = Recipients & ";" & c.Value
    Next c
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    On Error Resume Next
     ' Alterar o endereço de e-mail e assunto no macro antes de executá-lo.
    With OutMail
        .To = Recipients
        .Cc = ""
        .Bcc = ""
        .Subject = "Forecast - " & Range("Z1").Value '<--Intervalo
        .Body = ""
        .Attachments.Add ActiveWorkbook.FullName
        .Display
         '.Send
    End With
    On Error GoTo 0
    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub
Sub Send_Email()
Dim Email_Subject, Email_Send_From, Email_Body As String, i As Integer
Dim Mail_Object, nameList As String, o As Variant
        Email_Send_From = ""
         For i = 7 To 39 'use cells 7 to 39 in column "I" where names are stored
    If Sheets("SHEETNAME").Range("I7").Value <> "" Then
        nameList = nameList & ";" & Sheets("SHEETNAME").Range("I" & i).Value
    End If
Next
        Set Mail_Object = CreateObject("Outlook.Application")
        With Mail_Object.CreateItem(o)
            .Subject = "SUBJECT GOES HERE "
            .To = nameList
            .Body = "BODY TEXT HERE"
            .Attachments.Add "FILEPATH AND FILENAME HERE" 'ActiveWorkbook.FullName
            .Send 'Will send straight away use .display to send manually
End With
        Application.DisplayAlerts = False
End Sub
 
Postado : 10/03/2013 6:18 pm
(@ragnobo)
Posts: 42
Trusted Member
Topic starter
 

Geovanirocha obrigado, pela força mais não aconteceu nada quando executo sua macro. e tipo preciso que o e-mail de destino seja pego na aba EMails na coluna A.

alexandrevba obrigado, Eu ja vi e tentei criar usando esses tutoriais mais to meio lento ainda na parte de vba e não consegui criar o codigo. esse codigo que vc postou e justamente o do tutorial e no caso ele não seria dividido em 3 partes seria ele todo junto mais não sei como adaptalo.

Continuo no aguardo de help

 
Postado : 10/03/2013 7:03 pm
(@geovanerocha)
Posts: 51
Trusted Member
 

ragnobo

Boa noite,

Se possível, anexe seu arquivo de exemplo compactado no formato zip para analizar-mos e dar uma solução para seu pedido.

No aguardo.

 
Postado : 10/03/2013 7:18 pm
(@ragnobo)
Posts: 42
Trusted Member
Topic starter
 

Segue o Arquivo compactado.

Com o arquivo, Lendo a primeira menssagem vc ira entenderme melhor.

E mais uma vez obrigado pela ajuda

 
Postado : 10/03/2013 7:23 pm
(@ragnobo)
Posts: 42
Trusted Member
Topic starter
 
Sub EMail_Automático()
    '==========================================================
    'PARA REMESSA DE E-MAIL AUTOMÁTICO DE DENTRO DAS APLICAÇÕES
    '==========================================================

    Dim olApp As Object, olMail As Object
    If Range("B1").Value >= Range("a1").Value Then
        Set olApp = CreateObject("Outlook.Application")
        Set olMail = olApp.CreateItem(0)
   
        'olMail.From = "fulano@hotmail.com" 'Quem está enviando o e-mail. Pode deixar desabilitado. _
        O Outlook vai usar o usuário atualmente logado no correiio e enviar em nome deste.
        olMail.Subject = "Insira o assunto aqui " 'Campo Assunto
        olMail.Body = "Insira a mensagem aqui " 'Campo referente a mensagem que se quer enviar
        olMail.To = "fulano@hotmail.com" 'Endereços dos destinatários
        olMail.cc = "fulano@hotmail.com" 'Campo Com cópia
        olMail.Attachments.Add "c:rankrank.pdf" 'Arquivo a inserir
        olMail.send 'Envio direto. Se quiser ver primeiro o e-mail para depois enviar, substitua _
        esse comando por Display
       
        Set olApp = Nothing
        Set olMail = Nothing
    End If
End Sub

GeovaneRocha Obrigado pela ajuda, funcionou perfeitamente, Mais...

Precisarei mais uma vez da sua sabedoria. gostaria que esse codigo pegasse os e-mails cadastrados na coluna A da aba EMails e adicionasse no campo destinatario do codigo.

E não sei o por que todas as tentativas de e-mail enviado com esse codigo no outlook tem me retornado o erro.
A tarefa '[email protected] - Enviando' relatou um erro (0x80042109) : 'O Outlook não pode se conectar ao seu servidor de saída de emails (SMTP). Se você continuar a receber esta mensagem, contate o administrador do servidor ou o provedor de serviços de Internet.'

Mais se eu envio normalmente a tabela criando um e-mail e anexando a planilha salva em pdf ele envia tranquilo sem erro.

Obrigado e aguardo resposta.

 
Postado : 11/03/2013 7:00 pm
(@geovanerocha)
Posts: 51
Trusted Member
 

Substitua o email [email protected] pelos que estão cadastrados na coluna A da aba E-mails e faz um teste.

Os e-mails devem ser separados por ponto e virgula.

 
Postado : 11/03/2013 8:48 pm
(@ragnobo)
Posts: 42
Trusted Member
Topic starter
 

Substitua o email [email protected] pelos que estão cadastrados na coluna A da aba E-mails e faz um teste.

Os e-mails devem ser separados por ponto e virgula.

Eu coloquei os e-mails cadastrados na coluna a e da esse erro. [email protected] e so pra não coloca o verdadeiro aqui.

E no caso dos e-mails cadastrados na coluna A da aba EMails . Eu gostaria que a macro capturasse esses e-mails na coluna A da aba EMails e enviasse o e-mail.

 
Postado : 12/03/2013 4:21 pm