Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#560
Senhores

Boa Noite,

Estou de posse de uma Macro para o envio de E-mail's a partir de uma
Planilha Excel, que em função de depurações realizadas, identifiquei
que com o comando .Display a mesma funciona perfeitamente, mas
ao utilizar o comando .Send, ocorre o seguinte erro:
'ERRO 287 - Erro de definição de aplicativo ou de definição de objeto'

Desde já agradeço.

Abraços

Claudio Tavares

A Macro é essa:
Public Sub enviar_email()
'Application.Goto Reference:="SBX_ENVIA_EMAIL"
On Error GoTo Erro
Dim X As Long

Dim outApp As Object
Dim outmail As Object

Dim texto As String

'novas variaveis
Dim mes As String
Dim nome As String
Dim email As String
Dim valor As Double
Dim contator As Integer

contator = 0
mes = InputBox("Digite o mes referente as refeições: exemplo 'Abril/2015' ", "Mês referente", UCase(Format(Date, "MMMM") & "-" & Format(Date, "YYYY")))

Range("A2").Select

Do While ActiveCell.Value <> Empty ' verifica se a celula esta vazia
Set outApp = CreateObject("Outlook.Application")
Set outmail = outApp.CreateItem(0)

'inicia a captura dos dados de cada cliente
nome = ActiveCell.Value ' nome
ActiveCell.Offset(0, 1).Select 'pula coluna
email = ActiveCell.Value 'email
ActiveCell.Offset(0, 25).Select 'pula coluna
valor = ActiveCell.Value 'valor
ActiveCell.Offset(0, -26).Select 'volta primeira coluna

'prepara a mensagem
texto = "Prezado(a) " & nome & vbCrLf & vbCrLf & _
"O valor total das suas refeições em " & mes & " foi de R$: " & Format(valor, "#,##0.00") & vbCrLf & vbCrLf & _
"Atenciosamente" & vbCrLf & vbCrLf

' prepara o email
With outmail

.To = email ' email da variavel
.cc = "c.tavares@uol.com.br" ' seu email
.bcc = ""
.Subject = "VALOR DE SUAS REFEIÇÕES"
.body = texto ' mensagem

.send

'.Display

End With

ActiveCell.Offset(1, 0).Select 'pula coluna 'pula linha indo para proximo cliente
contator = contator + 1

Loop ' volta e fazer tudo de novo ate a ultima linha da coluna "A" estiver vazia

MsgBox "Processo finalizado" & Chr(13) & "Total de email enviado: " & contator, vbInformation, "AVISO"

Exit Sub

'On Error GoTo 0

Erro:

MsgBox "ERRO!" & Err.Number & Chr(13) & Err.Description, vbCritical, "ERRO"

Set outmail = Nothing
Set outApp = Nothing

End Sub


Public Sub formulario_email()
UserForm1.Show
End Sub
#562
Claudio, não testei a sua macro ainda, mas só para saber, você tem pelo menos uma conta de e-mail configurada no seu Outlook?
#568
Este seu e-mail está configurado no outlook? Quando você entra no seu Outlook (manualmente) você consegue ver os seus e-mails e enviar e-mail normalmente?

Quando você utiliza o .Display, se você clica em enviar, o e-mail é enviado?

Para que a macro funcione, o Outlook deve estar configurado para enviar e-mails.
#571
Mas você utiliza o e-mail através do site da UOL, ou do outlook?

Se for através do site e não do Outlook, é por isso que não está funcionando, pois o seu e-mail não está configurado no Outlook.

Aqui está um tutorial para você configurar o seu e-mail:

http://email.uol.com.br/ajuda/imap-outlook-2013.jhtm
#573
Não, o passo é o mesmo. Perceba que após configurar, você vai conseguir ler os seus e-mails e responder através do Outlook também.
#578
não apareceu a opção de ARQUIVO, então cliquei em contas adicionar..
apareceu essa:
laennder1

cliquei em +adicionar conta de e-mail, apareceu essa:
laennder2

parei por ai..

Amigo, poderiamos continuar mais tarde, pois tenho q dar uma saida agora..

Abraços
Editado pela última vez por laennder em 01 Mai 2015 às 17:06, em um total de 1 vez. Razão: Anexos removidos. São permitidos apenas anexos compactados.
#584
Claudio,

Você deve abrir o seu OUTLOOK e configurar nele. E não no site da UOL.

Se não estiver conseguindo, será mais fácil entrar em contato com o serviço de suporte da UOL. Eles poderão lhe dar melhor suporte quanto a configuração.
#587
Leannder

olha eu aqui outra vez...

fiz a configuração no outlook e ela terminou legal..
fui testar a macro como comando send e o erro:
'ERRO 287 - Erro de definição de aplicativo ou de definição de objeto'
continuou..

alterei o send para display e agora o botão de enviar apareceu e pude enviar os e-mail's
so que um a um..
não teria um jeito de que gravasse todos os e-mail's em um unico lugar e depois com um
unico 'ENVIAR' enviar todos de uma so vez???
desculpas, pois mconcordo que ja estou encchendo o seu saco..
kkkkk
#588
Tente colocar essas duas linhas dentro do loop
Código: Selecionar todos
Set outmail = Nothing
Set outApp = Nothing
Após cada e-mail enviado é necessário limpar a memória.
#589
ja estou limpando..
sera que esta no lugar erado???
vou ver aqui...

troquei de lugar e coloquei apos o display, mas continua
abrindo e-mail por e-mail e sendo assim tenho que teclar o
enviar para cada um dos e-mail's...

por enquanto ja esta otimo...

gostaria de saber se tem como jogar todos os e-mail's em um lugar
e com um unico 'ENVIAR' enviar todos..

Leannder, voce eh fora de serie..

Agora gostaria de mais um favor:
gostaria de incluir os seguintes testes na macro:
- seu o campo de e-mail não estiver preenchido ou
o valor estiver zerado, não gerar os e-mail's..
poderia me ajudar..

Grato
#590
Anexa a sua planilha para eu dar uma analisada no código.

Para não gerar os e-mails é só utilizar uma condição IF dentro do loop
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord