Notifications
Clear all

Macro para enviar mala direta de pedidos

3 Posts
2 Usuários
0 Reactions
1,199 Visualizações
(@claudiosouza)
Posts: 2
New Member
Topic starter
 

Olá pessoal, sou novo neste forum!!!
Gostaria muito da ajuda de Vcs.
Tenho utilizado uma macro de enviar e-mail por mala direta, que funciona hoje perfeitamente, enviando item por item via tabela do excel com auxilio do word.
Porém observei que se tiver na tabela o mesmo código do fornecedor em linhas diferentes na tabela em excel, a macro envia 2 vezes um
e-mail para mesmo fornecedor.
Teria como verificar e filtrar, colocando no mesmo e-mail que corresponde a uma determinada coluna, onde tem o código do fornecedor.
Ou seja, em vez de mandar 5 e-mails que se refere a 5 linhas do excel, juntar todas as 5 linhas no mesmo e-mail ???

Gostaria de uma orientação dos amigos nessa solução.

Um grande abraço a todos!!!

 
Postado : 08/10/2012 11:12 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Seria primordial, enviar seu código, pra que o pessoal possa ajuda-lo!

Att

 
Postado : 08/10/2012 3:08 pm
(@claudiosouza)
Posts: 2
New Member
Topic starter
 

Olá pessoal, boa tarde!
Segue o código abaixo, conto com a ajuda de Vcs, muito obrigado!

Sub MalaDiretaEnviarEmailCorpo()

'Defina aqui em qual coluna se encontra o campo Email
Const cEmail As String = "D"

'Declarações para o Outlook
Dim appOutlook As Outlook.Application
Dim olMI As Outlook.MailItem

Dim ws As Worksheet
Dim n As Long
Dim r As Long, rLast As Long
Dim c As Long, cLast As Long
Dim appWord As Word.Application
Dim doc As Word.Document
Dim blOutlookWasClosed As Boolean

Set ws = ActiveSheet

'Obter ou criar instância de Aplicação Outlook
On Error Resume Next
Set appOutlook = GetObject(, "Outlook.Application")
If appOutlook Is Nothing Then
Set appOutlook = CreateObject("Outlook.Application")
blOutlookWasClosed = True
End If
On Error GoTo 0

'Criar instância de Aplicação Word
Set appWord = CreateObject("Word.Application")

appWord.Visible = True

With ws
rLast = .Cells(.Rows.Count, "A").End(xlUp).Row
cLast = .Cells(1, .Columns.Count).End(xlToLeft).Column

For r = 2 To rLast
Set doc = appWord.Documents.Open(Filename:="z:fupEnvio Pedido AprovadoEnvioPedidoAprovadoMarcio.docx")
For c = 1 To cLast
doc.Bookmarks(.Cells(1, c)).Range.Text = .Cells(r, c)
Next c
n = n + 1

'Criar e Enviar e-mail
Set olMI = appOutlook.CreateItem(olMailItem)
olMI.To = (.Cells(r, cEmail))
olMI.Subject = "Follow Up TKCSA"
'Range("A1:G20").Select
'Selection.Copy
'Application.CutCopyMode = False
doc.Range.Copy
olMI.Display
olMI.GetInspector.WordEditor.Range.Paste
olMI.Send

doc.Close False
Next r
End With

appWord.Quit
If blOutlookWasClosed Then appOutlook.Quit

End Sub

 
Postado : 09/10/2012 2:29 pm