Notifications
Clear all

Coluna de email envio em separado

8 Posts
2 Usuários
0 Reactions
1,319 Visualizações
(@fazerbem)
Posts: 0
New Member
Topic starter
 

Bom dia,

Tenho uma coluna C contendo 100 emails, porem quando envio em lote o Gmail retorna erro, se eu diminuir pra 50 ocorre o mesmo. Considera Span.
Porem isso nao me atrapalha tanto, mas o que eu queria era criar uma macro ao qual eu pudesse enviar 1 email a cada vez que fosse acionada a Macro. Entao ao acionar pegaria o primeiro email que esta na coluna C2. faria o loop e assim sucessivamente. O assunto sera o conteudo de L1. O corpo do email deverá conter o conteudo das celulas V2, V6, V10, V14,V18 e V22, e o anexo o que esta na celula F1 o caminho o que esta na celula F2.

Grato

 
Postado : 23/05/2016 6:17 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
(@fazerbem)
Posts: 0
New Member
Topic starter
 

Achei este aqui viewtopic.php?f=10&t=18283&start=10

Vou adaptar aqui e ver como fica.

Manterei aberto o topico ainda

Grato

 
Postado : 23/05/2016 6:31 am
(@fazerbem)
Posts: 0
New Member
Topic starter
 

A Macro Abaixo esta funcionando corretamente, somente nao esta trocando a conta de Email ao qual devreia ser nesta Linha

EMail.SendUsingAccount = OlApp.Session.Accounts.Item(idEmail)
EMail.Display '.Send

Poderiam me dar uma ajuda ?

Sub A1_Envio_Individual()
    '======================================
    ' Preparando o E-mail para ser enviado
    '======================================
    
    Dim OlApp As Outlook.Application
    Dim OlMensagem As Outlook.MailItem
    Dim Leitura     As String
    Dim contaEmail As String
    Dim Loja        As String
    Loja = Range("A1")
    
    Leitura = Sheets(Loja).Range("I7")

    
 '--------------------------------------------------------------
 
    Dim Correio As Object, EMail As Object
    Dim Pasta As String
    Dim Arquivo As String
    Dim i As Long
    Dim UltimaLinha As Long
    Dim Mensagem As String
    Dim Assunto     As String
 
 Sheets("Envios Individuais").Visible = True

If Range("A1").Value = "Rio de Janeiro" Or Range("A1").Value = "Academias" Or Range("A1").Value = "DVitaminas" Or Range("A1").Value = "SNC" Or Range("A1").Value = "Farmacias" Then
   
    Range("C2:C100").Select
    Selection.Copy
    Sheets("Envios Individuais").Select
    Range("C3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
     Assunto = Range("A5")
     
GoTo Segue
    
Else

Dim aba As String
aba = Range("H10").Value
 Sheets(aba).Visible = True
 Sheets(aba).Select

    Range("C1:C100").Select
    Selection.Copy
    Sheets("Envios Individuais").Select
    Range("C3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Assunto = Range("A5")
        


End If

GoTo Segue
Segue:


' Preste atencao aqui
      contaEmail = ThisWorkbook.Sheets(Loja).Range("I8").Value
    'Create the Outlook application and the empty email.
    Set OlApp = CreateObject("Outlook.Application")
Set OlMensagem = OlApp.CreateItem(0)
    
   'Este laço verifica se o nome da conta w no registro do windows é igual ao valor da célula
    For w = 1 To OlApp.Session.Accounts.Count
        If OlApp.Session.Accounts.Item(w).DisplayName = contaEmail Then 'Se for verdadeiro, solicita confirmação
            If MsgBox("O E-mail será enviado usando a conta " & contaEmail & ". Confirma ?" & "    ( Estado - " & Estado & " )", vbQuestion + vbYesNo, "Envio de e-mail") = vbYes Then
                            
                idEmail = w 'Define o id da conta para o comando enviar
                Exit For 'Sai do laço
                
            Else
                 Sheets(Estado).Visible = False
                 Sheets(Loja).Select
                
                GoTo FIm 'Senão sai da rotina
            End If
        End If
    Next



    
    UltimaLinha = Sheets("Envios Individuais").Cells(Cells.Rows.Count, 2).End(xlUp).Row
    If UltimaLinha < 3 Then UltimaLinha = 3
    
    
    'Laço para pegar cada um dos destinatários da coluna B, começando na linha 3
    For i = 3 To UltimaLinha
    
         Set Correio = CreateObject("Outlook.Application")
         Set EMail = Correio.CreateItem(0)
         
         'Campo Assunto
         EMail.Subject = Assunto '"Bonus Generator"
          
        'Cria a mensagem que será enviada
        Mensagem = "        Prezado (a) " & Range("A8").Value & "," & Chr(10) & Chr(10)
        Mensagem = Mensagem & "        Estamos remetendo, anexo, a Tabela de Pedidos em Excel." & Chr(10) & Chr(10)
        Mensagem = Mensagem & "          Caso queira, me solicite um Catálogo dos Produtos em PDF ! " & Chr(10) & Chr(10)
        Mensagem = Mensagem & "Atenciosamente" & Chr(10) & Chr(10)
        Mensagem = Mensagem & Range("A11").Value & Chr(10)
        Mensagem = Mensagem & Range("A12").Value
          
         'A Mensagem que seguirá no corpo do e-mail
         EMail.Body = Mensagem
         
         'Para quem vai a mensagem...
         EMail.To = Range("C" & i).Value
         
         'Se for enviar com cópia
         'EMail.Cc = "dantas.mariana@emrpesa.com"
         
         'Arquivos a serem anexados
         EMail.Attachments.Add Range("A2").Value & "" & Range("A15").Value
     '  EMail.Attachments.Add "C:UsersAndreDesktopPedidos GauerCatalogo Leader Nutrition.pdf"

                     
         'Para pré visualizar a mensagem usar Display. Para enviar direto sem visualizar, use Send
                  
       EMail.Display  'Send
         
       EMail.ReadReceiptRequested = Leitura ' confirmação de leitura
       EMail.SendUsingAccount = OlApp.Session.Accounts.Item(idEmail)
       EMail.Display '.Send
         
         
        Set Correio = Nothing
        Set EMail = Nothing
    Next
    
    Range("C3:C110").Select
    Selection.ClearContents
    
     Sheets("Envios Individuais").Visible = False
    


   Set OlApp = Nothing




GoTo FIm
FIm:
 
    
End Sub
 
Postado : 23/05/2016 12:03 pm
(@fazerbem)
Posts: 0
New Member
Topic starter
 

cheguei a isso, ta um pouco embolado mas funcionando, porem o ultimo Next nao funcionou, ou seja so pega 1 Email da coluna C

Poden ajeitar pra mim ?

Grato

Andre

Sub A1_Envio_Individual()
    '======================================
    ' Preparando o E-mail para ser enviado
    '======================================
    
    Dim OlApp As Outlook.Application
    Dim OlMensagem As Outlook.MailItem
    Dim Leitura     As String
    Dim contaEmail As String
    Dim Loja        As String
  '  Dim Correio As Object, EMail As Object
    Dim Pasta As String
    Dim Arquivo As String
    Dim i As Long
    Dim UltimaLinha As Long
    Dim Mensagem As String
    Dim Assunto     As String
    
    
    Loja = Range("A1")
    
    Leitura = Sheets(Loja).Range("I7")

    
 '--------------------------------------------------------------
 
 
 Sheets("Envios Individuais").Visible = True

   
    Range("C2:C100").Select
    Selection.Copy
    Sheets("Envios Individuais").Select
    Range("C3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
     Assunto = Range("A5")
     



' Preste atencao aqui
      contaEmail = ThisWorkbook.Sheets("Envios Individuais").Range("A27").Value
        

    
  ' Create the Outlook application and the empty email.
    Set OlApp = CreateObject("Outlook.Application")
    Set OlMensagem = OlApp.CreateItem(0)
         
   'Este laço verifica se o nome da conta w no registro do windows é igual ao valor da célula
    For w = 1 To OlApp.Session.Accounts.Count
       '  For w = 1 To Correio.Session.Accounts.Count
    
        If OlApp.Session.Accounts.Item(w).DisplayName = contaEmail Then 'Se for verdadeiro, solicita confirmação
            If MsgBox("O E-mail será enviado usando a conta " & contaEmail & ". Confirma ?" & "    ( Estado - " & Estado & " )", vbQuestion + vbYesNo, "Envio de e-mail") = vbYes Then
                            
                idEmail = w 'Define o id da conta para o comando enviar
                Exit For 'Sai do laço
                
            Else
                 Sheets(Estado).Visible = False
                 Sheets(Loja).Select
                
                GoTo Fim 'Senão sai da rotina
            End If
        End If
    Next
    
  'Using the email, add multiple recipients, using a list of addresses in column C.
     With OlMensagem
    
       UltimaLinha = Sheets("Envios Individuais").Cells(Cells.Rows.Count, 2).End(xlUp).Row
    If UltimaLinha < 3 Then UltimaLinha = 3
           
    'Laço para pegar cada um dos destinatários da coluna B, começando na linha 3
    For i = 3 To UltimaLinha
    
  ' Create the Outlook application and the empty email.
    Set OlApp = CreateObject("Outlook.Application")
    Set OlMensagem = OlApp.CreateItem(0)
    

     
         'Campo Assunto
        .Subject = Assunto '"Bonus Generator"
          
        'Cria a mensagem que será enviada
        Mensagem = "        Prezado (a) " & Range("A8").Value & "," & Chr(10) & Chr(10)
        Mensagem = Mensagem & "        Estamos remetendo, anexo, a Tabela de Pedidos em Excel." & Chr(10) & Chr(10)
        Mensagem = Mensagem & "          Caso queira, me solicite um Catálogo dos Produtos em PDF ! " & Chr(10) & Chr(10)
        Mensagem = Mensagem & "Atenciosamente" & Chr(10) & Chr(10)
        Mensagem = Mensagem & Range("A11").Value & Chr(10)
        Mensagem = Mensagem & Range("A12").Value
          
         'A Mensagem que seguirá no corpo do e-mail
         .Body = Mensagem
         
         'Para quem vai a mensagem...
         .To = Range("C" & i).Value
         
         'Se for enviar com cópia
         'EMail.Cc = "dantas.mariana@emrpesa.com"
         
         'Arquivos a serem anexados
         .Attachments.Add Range("A2").Value & "" & Range("A15").Value
     '  EMail.Attachments.Add "C:UsersAndreDesktopPedidos GauerCatalogo Leader Nutrition.pdf"

                     
         'Para pré visualizar a mensagem usar Display. Para enviar direto sem visualizar, use Send
                  
       .Display  'Send
         
       .ReadReceiptRequested = Leitura ' confirmação de leitura
       .SendUsingAccount = OlApp.Session.Accounts.Item(idEmail)
       .Display '.Send
         
         
       ' Set Correio = Nothing
       ' Set EMail = Nothing


    
    Range("C3:C110").Select
    Selection.ClearContents
    

    
    


   Set OlApp = Nothing
     Set OlMensagem = Nothing
     


 
 Next
End With
 
 GoTo Fim
Fim:
 
   Sheets("Envios Individuais").Visible = False

End Sub
 
Postado : 23/05/2016 1:34 pm
(@fazerbem)
Posts: 0
New Member
Topic starter
 

desculpem insisitir mais uma vez, mas alguem deu uma olhada no meu ultimo codigo. Se sim espero ancioso, se nao peço uma ajuda aos colegas.

Grato e desculpem a insistencia.

Andre

 
Postado : 24/05/2016 10:49 am
(@fazerbem)
Posts: 0
New Member
Topic starter
 

Segue um modelo de Planilha e sua respectiva Macro.

Esta funcionando, so quero que o ultimo NEXT funcione, o que nao esta funcionando, pois esta somente enviando a 1 email apenas.

Agradeço se alguem puder me ajudar.

Andre

 
Postado : 24/05/2016 12:20 pm
(@fazerbem)
Posts: 0
New Member
Topic starter
 

Vi onde estava o erro.

Consegui achar, segue a Macro a quem possa interessar.

Grato

Andre

Sub A1_Envio_Individual()
    '======================================
    ' Preparando o E-mail para ser enviado
    '======================================
    
    Dim OlApp As Outlook.Application
    Dim OlMensagem As Outlook.MailItem
    Dim Leitura     As String
    Dim contaEmail As String
    Dim Loja        As String
  '  Dim Correio As Object, EMail As Object
    Dim Pasta As String
    Dim Arquivo As String
    Dim i As Long
    Dim UltimaLinha As Long
    Dim Mensagem As String
    Dim Assunto     As String
    
    
    Loja = Range("A1")
    
    Leitura = Sheets(Loja).Range("I7")

    
 '--------------------------------------------------------------
 
 
 Sheets("Envios Individuais").Visible = True

   
    Range("C2:C100").Select
    Selection.Copy
    Sheets("Envios Individuais").Select
    Range("C3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
     Assunto = Range("A5")
     



' Preste atencao aqui
      contaEmail = ThisWorkbook.Sheets("Envios Individuais").Range("A27").Value
        

    
  ' Create the Outlook application and the empty email.
    Set OlApp = CreateObject("Outlook.Application")
    Set OlMensagem = OlApp.CreateItem(0)
         
   'Este laço verifica se o nome da conta w no registro do windows é igual ao valor da célula
    For w = 1 To OlApp.Session.Accounts.Count
       '  For w = 1 To Correio.Session.Accounts.Count
    
        If OlApp.Session.Accounts.Item(w).DisplayName = contaEmail Then 'Se for verdadeiro, solicita confirmação
            If MsgBox("O E-mail será enviado usando a conta " & contaEmail & ". Confirma ?" & "    ( Estado - " & Estado & " )", vbQuestion + vbYesNo, "Envio de e-mail") = vbYes Then
                            
                idEmail = w 'Define o id da conta para o comando enviar
                Exit For 'Sai do laço
                
            Else

            End If
        End If
    Next
    

    
       UltimaLinha = Sheets("Envios Individuais").Cells(Cells.Rows.Count, 3).End(xlUp).Row
    If UltimaLinha < 3 Then UltimaLinha = 3
           
    'Laço para pegar cada um dos destinatários da coluna B, começando na linha 3
    For i = 3 To UltimaLinha
    
  ' Create the Outlook application and the empty email.
    Set OlApp = CreateObject("Outlook.Application")
    Set OlMensagem = OlApp.CreateItem(0)
    
  'Using the email, add multiple recipients, using a list of addresses in column C.
     With OlMensagem
     
         'Campo Assunto
        .Subject = Assunto '"Bonus Generator"
          
        'Cria a mensagem que será enviada
        Mensagem = "        Prezado (a) " & Range("A8").Value & "," & Chr(10) & Chr(10)
        Mensagem = Mensagem & "        Estamos remetendo, anexo, a Tabela de Pedidos em Excel." & Chr(10) & Chr(10)
        Mensagem = Mensagem & "          Caso queira, me solicite um Catálogo dos Produtos em PDF ! " & Chr(10) & Chr(10)
        Mensagem = Mensagem & "Atenciosamente" & Chr(10) & Chr(10)
        Mensagem = Mensagem & Range("A11").Value & Chr(10)
        Mensagem = Mensagem & Range("A12").Value
          
         'A Mensagem que seguirá no corpo do e-mail
         .Body = Mensagem
         
         'Para quem vai a mensagem...
         .To = Range("C" & i).Value
         
         'Se for enviar com cópia
         'EMail.Cc = "dantas.mariana@emrpesa.com"
         
         'Arquivos a serem anexados
         .Attachments.Add Range("A2").Value & "" & Range("A15").Value
     '  EMail.Attachments.Add "C:UsersAndreDesktopPedidos GauerCatalogo Leader Nutrition.pdf"

                     
         'Para pré visualizar a mensagem usar Display. Para enviar direto sem visualizar, use Send
                  
       .Display  'Send
         
       .ReadReceiptRequested = Leitura ' confirmação de leitura
       .SendUsingAccount = OlApp.Session.Accounts.Item(idEmail)
       .Display '.Send
         
    

    
    


   Set OlApp = Nothing
     Set OlMensagem = Nothing
     



 

End With
 
Next

    Range("C3:C110").Select
    Selection.ClearContents


   Sheets("Envios Individuais").Visible = False

End Sub
 
Postado : 24/05/2016 12:38 pm