ATENÇÃO NOVOS USUÁRIOS

Se registrou recentemente? Seu cadastro será avaliado e mendiante aprovação, a conta será ativada e você poderá usufruir do fórum. O tempo de avaliação gira em torno de 24 a 48 horas.

Esqueceu sua senha?

Você pode usar o mecanismo de lembrete neste link: Recuperar senha

Você receberá um link de reativação no email cadastrado.

Não recebeu o email? Lembre-se checar o Lixo Eletrônico.

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 » Seg Fev 10, 2020 3:01 pm

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: 1429
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 » Ter Fev 11, 2020 7:41 am

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


Reinaldo
:oops: :D :mrgreen: :geek:

Responder