Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Dúvida no campo .to para Encamihar Email

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
fao17
Colaborador
Colaborador
Mensagens: 10
Registrado em: Seg Jun 10, 2019 7:10 pm

Dúvida no campo .to para Encamihar Email

Mensagem por fao17 »

Boa tarde.
Preciso de um código onde encaminha somente um email para endereços de acordo com uma coluna.
No meu código o campo "para" preenche somente com o conteúdo da primeira célula.
Onde está meu erro?

Código: Selecionar todos

Sub EnviarEmail()
Dim OutApplication As Object
Dim nEmail As Object
Dim UltCel As Range
Dim Resultado As Long

Application.ScreenUpdating = False
Set OutApplication = CreateObject("Outlook.Application")
Set nEmail = OutApplication.CreateItem(olMailItem)

Resultado = 0
'Sheets("Email").Select

'Set UltCel = ActiveSheet.Range("A1048576").End(xlUp)
'UltCel.Select
Range("I14").Select

Do While ActiveCell.row >= ""
    
    Resultado = ActiveCell.Value
    ActiveCell.Offset(-1, 0).Select
    
Loop

With nEmail
.to = Resultado
'.CC = 
'.BCC = 
.Subject = 
.HtmlBody = "

.display

End With
Application.ScreenUpdating = True

End Sub



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Dúvida no campo .to para Encamihar Email

Mensagem por Reinaldo »

A variavel Resultado não pode ser Long (numerica), deve ser String (Texto)
Para enviar a todos os valores encontrado experimente alterar o trecho conforme abaixo

Código: Selecionar todos

...
Do While ActiveCell.Row <> ""
    Resultado = Resultado & ";" & ActiveCell.Value
    ActiveCell.Offset(-1, 0).Select
Loop
If VBA.Right(Resultado, 1) = ";" Then Resutado = VBA.Mid(Resultado, 1, Len(Resultado) - 1)
...
Para enviar um a um experimente

Código: Selecionar todos

Sub EnviarEmail()
Dim OutApplication As Object
Dim nEmail As Object
Dim Resultado As String

Application.ScreenUpdating = False
Set OutApplication = CreateObject("Outlook.Application")
Set nEmail = OutApplication.CreateItem(olMailItem)

Range("I14").Select

Do While ActiveCell.Row <> ""
    Resultado = ActiveCell.Value
        With nEmail
            .to = Resultado
            '.CC =
            '.BCC =
            .Subject =
            .HtmlBody = ""
            .display
        End With
    ActiveCell.Offset(-1, 0).Select
Loop
Application.ScreenUpdating = True
End Sub


Responder