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
Acabou de chegar
Acabou de chegar
Mensagens: 9
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: 1413
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