Ir ao conteúdo
  • Cadastre-se

Excel VBA - Envio em Massa de Email - Excel


Posts recomendados

Bom dia a todos!
 

Gostaria de tirar uma dúvida e entender o que estou fazendo de errado no meu código.
Estou criando uma Macro para enviar emails em massa para destinatários diferentes, cada um com um texto.

Meu problema esta sendo que ele esta enviando somente para a primeira linha da planilha, não está repetindo para os demais.

Imagino que seja um Loop faltante, mas pelo fato de ter um "Next i", entendo que funcionaria....

 

Alguém pode me ajudar? Obrigado!!!

 

Obs: São 4 Emails diferentes (4 Linhas)

Código:

 

Sub Enviar_Email()
    Dim OutlookApp As Object
    Dim OutlookMail As Object
    Set OutlookApp = CreateObject("Outlook.Application")
    Set OutlookMail = OutlookApp.CreateItem(0)
    
    On Error Resume Next
    
     For i = 1 To 4
     
        If Exemplo1.Range("F" & i + 2).Value <> "Ok" Then
             With OutlookMail
                .To = Exemplo1.Range("F" & i + 2).Value
                .CC = Exemplo1.Range("G" & i + 2).Value
                .BCC = Exemplo1.Range("H" & i + 2).Value
                .Subject = Exemplo1.Range("E" & i + 2).Value
                .HTMLBody = Exemplo1.Range("L" & i + 2).Value
                .Send
                '.Display 'Use .Send para enviar o email direto sem exibir na tela''
                
             End With
        End If
    Next i
    
    On Error GoTo 0
    Set OutlookMail = Nothing
    Set OutlookApp = Nothing
End Sub
 

 

 

Segue print da planilha:

image.thumb.png.12d58421bc47e020e78d5ee2ea224b6e.png

 

Obrigado desde já!!! =)

Link para o comentário
Compartilhar em outros sites

@olliver.soul tentei aqui substituir o código, continuou mandando apenas para o primeiro destinatário.......
O código ficou assim:

'Email automático em massa para fornecedores - Autor: Yuri Watzech'

Sub Enviar_Email()
    Dim OutlookApp As Object
    Dim OutlookMail As Object
    Set OutlookApp = CreateObject("Outlook.Application")
    Set OutlookMail = OutlookApp.CreateItem(0)
    
    On Error Resume Next
    
     For i = 3 To 6
     
        If Exemplo1.Range("F" & i).Value <> "Ok" Then
             With OutlookMail
                .To = Exemplo1.Range("F" & i).Value
                .CC = Exemplo1.Range("G" & i).Value
                .BCC = Exemplo1.Range("H" & i).Value
                .Subject = Exemplo1.Range("E" & i).Value
                .HTMLBody = Exemplo1.Range("L" & i).Value
                .Send
                '.Display 'Use .Send para enviar o email direto sem exibir na tela''
                
             End With
        End If
    Next i
    
    On Error GoTo 0
    Set OutlookMail = Nothing
    Set OutlookApp = Nothing
End Sub
 

 

=/

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!