Cómo enviar un mail a una lista de destinos

13/09/2006 - 15:11 por Diego | Informe spam
Buenos días grupo.
Necesito poder enviar un mail a una lista de correos que se encuentra en un
rango de celdas.
Identificar la lista de correos y meterla en una variable no es problema,
esta separada por ";" entre ellos, logro abrir la ventana del nuevo correo,
pero no sé como asignarle la lista de correos de destinatario al mail.

La macro que he trabajado es:

Sub EnviarMailPromo()

'Inicializa la lista con una lista vacia
MaiList = ""

'Asigna la lista de mails a una variable
Set Lista = Range(Cells(IniFil, IniCol), Cells(FinFil, FinCol))

'Arma la lista de nombre
For Each Cel In Lista
If MaiList = "" Then
If Not (Cel = "" Or Cel = "") Then
MaiList = Cel
End If
Else
If Not (Cel = "" Or Cel = "") Then
MaiList = MaiList & "; " & Cel
End If
End If
Next

Application.Dialogs(xlDialogSendMail).Show

End Sub

He cortado partes del código que no son relevantes para este problema, la
última sentencia es la que abre la ventana del correo.

Estoy trabajando con Office 2003.

Espero puedan ayudarme.

Gracias.
 

Leer las respuestas

#1 Diego
18/09/2006 - 18:40 | Informe spam
Hola KL.

Tengo problemas con las opciones que me has presentado.
Debe ser que me falta activar alguna referencia.
He buscado en la lista de referencias y no ubico cual debo activar.

Cuando sigo la recomendación que me das en el punto 3 me arroja el sgte
mensaje:
'Se ha producido el error 1004 en tiempo de ejecución:
Error en el método Show de la calse Dialog'

Cuando corro (tomado de la página que me recomendaste)

Sub CDO_Send_Workbook()
Dim iMsg As Object
Dim iConf As Object
Dim wb As Workbook
Dim WBname As String

Application.ScreenUpdating = False
Set wb = ActiveWorkbook

' It will save a copy of the file in C:/ with a Date and Time stamp
WBname = wb.Name & " " & Format(Now, "dd-mm-yy h-mm-ss") & ".xls"
wb.SaveCopyAs "C:/" & WBname


Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")

With iMsg
Set .Configuration = iConf
.To = ""
.CC = ""
.BCC = ""
.From = """Ron"" "
.Subject = "This is a test"
.TextBody = "This is the body text"
.AddAttachment "C:/" & WBname
.Send
End With

'If you not want to delete the file you send delete this line
Kill "C:/" & WBname

Set iMsg = Nothing
Set iConf = Nothing
Set wb = Nothing
Application.ScreenUpdating = True
End Sub

ME sale el sgte error:

'Se ha producido el error -2147220960 (80040220) en tiempo de ejecución:
No es válido el valor de configuración "SendUsing" '

Muchas gracias por tu ayuda.


"KL" wrote:

Hola Diego,

1) Aqui encontraras varias formas de enviar el correo de forma mas controlada que Dialogs(xlDialogSendMail):

http://www.rondebruin.nl/sendmail.htm

2) Aqui los paramentros disponibles para Dialogs(xlDialogSendMail)

xlDialogSendMail recipients, subject, return_receipt


3) Aqui un ejemplo de lo que podrias hacer usando Dialogs(xlDialogSendMail) en tu caso concreto (la penultima linea)

Sub EnviarMailPromo()
'Inicializa la lista con una lista vacia
MaiList = ""
'Asigna la lista de mails a una variable
Set Lista = Range(Cells(IniFil, IniCol), Cells(FinFil, FinCol))
'Arma la lista de nombre
For Each Cel In Lista
If MaiList = "" Then
If Not (Cel = "" Or Cel = "") Then
MaiList = Cel
End If
Else
If Not (Cel = "" Or Cel = "") Then
MaiList = MaiList & "; " & Cel
End If
End If
Next
Application.Dialogs(xlDialogSendMail).Show MaiList, "Test", False
End Sub




Saludos,
KL

Preguntas similares