Olá Pessoal,
Depois de bater cabeça um dia inteiro, resolvi pedir socorro. Me deram uma tarefa ingrata de enviar "trocentos" e-mails cada um com um destinatário diferente...
Minha ideia é usar uma macro que fizesse o seguinte, busque o nome do fulano, depois pegue o e-mail do cara e procure o tal arquivo para anexar.. tudo isso num range só ... (
Depois de fuçar muito cheguei nesse código aqui:
Sub Enviar_email()
Dim enderecos As Range
Dim celula As Range
Dim anexo As String
Dim r As Integer
Dim fim
Dim enviar
Dim objOlAppApp As Outlook.Application
Dim objOlAppMsg As Outlook.MailItem
Dim objOlAppRecip As Outlook.Recipient
Dim objOlAppAnexo As Outlook.Attachment
Set objOlAppApp = CreateObject("Outlook.Application")
Set objOlAppMsg = objOlAppApp.CreateItem(olMailItem)
'Celulas com os endereços
Set enderecos = Range("C4:C10")
With objOlAppMsg
'Processar endereços para o envio
For Each celula In enderecos
If celula.Text <> "" And InStr(1, celula.Text, "@") > 0 Then
Set objOlAppRecip = .Recipients.Add(celula.Text)
'definir o tipo do destinatario
End If
Next celula
'verificar se existe destinatário
If .Recipients.Count = 0 Then GoTo fim
'Anexar ficheiro, com o nome e caminho escrito na celula C13
anexo = Range("D4
'verificar se o caminho para o anexo é válido
If Dir(anexo) = "" Then
r = MsgBox("Anexo inexistente ou caminho invalido, " & _
"pretende enviar assim mesmo ? ", _
vbYesNo, _
"Erro de anexo")
If r = vbYes Then GoTo enviar Else GoTo fim
End If
Set objOlAppAnexo = .Attachments.Add(anexo)
enviar:
'definir a sua importancia
.Importance = olImportanceHigh
'O assunto
.Subject = "Envio de Livro - " & Format(Now, "dd-mmm.yyyy hh:mm:ss")
'O conteudo do Mail
.Body = "Envio de livro ......... " & vbCrLf & _
"....Texto a inserir no conteudo do mail.........." & vbCrLf
'enviar mensagem
.Send
End With
fim:
'Libertar as variaveis
Set objOlAppApp = Nothing
Set objOlAppMsg = Nothing
Set objOlAppAnexo = Nothing
Set objOlAppRecip = Nothing
End Sub
O erro está na linha em vermelho.. ele não está associando o endereço de e-mail com o anexo, ou seja, ele não me deixa mandar um anexo diferente para cada e-mail, mas sim.. varios anexos para um e-mail ...
Se alguém puder me ajudar com este ajuste....
- Home
- >
- Fórum
- >
- Windows, Softwa...
- >
- Suítes de escri...
- >
- Ajuste VBA - Email
Zanqueta disse: ... anexo = Range("D4
O trecho em vermelho seria anexo = Range ( " D45 " ) ?
Seria bom você colocar um anexo da planilha aqui para sabermos o real funcionamento dela e a partir daí podemos fazer alguma coisa por você
Um abraço!
t+
Olá Boslotim, obrigado pela rapidez.
Então, a questão é exatamente essa, não quero deixar o anexo fixo, entende, preciso de um "loop" que associe um endereço de e-mail diferente com um anexo diferente.
Acho que o anexo ajudará um pouco mais...
Fico no aguardo da resposta.
Anexos
Se não quer ter seu anexo fixa aqui, pode hospedar o anexo no site 4Sahred: http://www.4shared.com/ .... Ele ficará por alguns dias.
Um abraço!
t+
Não é isso .. Não quero que o codigo trate o anexo como um obj fixo e sim como uma variavel....
Já postei a planilha de exemplo...
Amigo Zanqueta,
Talvez você pode encontrar o que está procurando nas dica e/ou anexos do colega Coloniz@dor do link abaixo.
Link: https://www.hardware.com.br/comunidade/dicas-excel/869188/
T Mais.
Um abraço!
Olá H_TM
já havia buscado antes neste outro tópico, infelizmente não achei o que preciso. Continuo aguardando.
Tá complicado amigo... Espero ajuda de alguém com mais conhecimento para dar uma luz. Aguardaremos!
Qualquer novidade, posto aqui.
Um abraço!
t+