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.

Preguntas similare

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

Respuesta Responder a este mensaje
#2 KL
18/09/2006 - 20:10 | Informe spam
Hola Diego,


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'



Has modificado el codigo de alguna manera?
Puedes exponer el codigo que usas exactamente?
Yo use como punto de partida tu ejemplo donde faltaba asignar valores a las variables IniFil y IniCol

Cuando corro (tomado de la página que me recomendaste)
Sub CDO_Send_Workbook()...
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" '



Ron de Bruin el autor del codigo lo explica al principio de la pagina: http://www.rondebruin.nl/cdo.htm

Si te sale dicho error, tienes que quitar los apostrofos delante del codigo que aparece en azul (y que tu has borrado) ...
'--
' Dim Flds As Variant

' iConf.Load -1 ' CDO Source Defaults
' Set Flds = iConf.Fields
' With Flds
' .Item("http://schemas.microsoft.com/cdo/co...sing") = 2
' .Item("http://schemas.microsoft.com/cdo/co...rver") = "Fill in your SMTP server here"
' .Item("http://schemas.microsoft.com/cdo/co...port") = 25
' .Update
' End With'--

y poner la direccion de tu servidor SMTP reemplazando "Fill in your SMTP server here"

Saludos,
KL
Respuesta Responder a este mensaje
#3 Diego
18/09/2006 - 21:04 | Informe spam
KL

El código completo que tengo es el sgte:
Dim MaiList As String
Dim AuxFil, AuxCol, IniCol, IniFil, FinCol, FinFil As Integer
Dim Lista As Range

Sub EnviarMailPromo()

'Ubica se ubica en la 1a celda
Cells(1, 1).Select

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

'Busca el área donde esta la lista de e-mails
'Primero busca la celda superior izquierda
Cells.Find(What:="e-mail Trabajo").Activate
ActiveCell.Offset(1, 0).Select
IniCol = ActiveCell.Column
IniFil = ActiveCell.Row
'El área es de solo 2 columnas
FinCol = IniCol + 1
'Inicia la busqueda de la última fila
Cells.Find(What:="Nombre", LookAt:=xlWhole).Activate
AuxFil = ActiveCell.Row + 1
AuxCol = ActiveCell.Column
Do While Cells(AuxFil, AuxCol) <> ""
AuxFil = AuxFil + 1
Loop
FinFil = AuxFil

'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
-

La impresión que tengo es que estoy a un paso de conseguir enviar ese mail,
pero no lo logro hacer.
En mi PC los únicos argumentos que acepta son de tipo boolean, por eso
supongo el error.
Algunas veces en el pasado me han ocurrido errores del mismo tipo, y la
solución vino por activar alguna referencia.
Espero puedas ayudarme.

Gracias.
Respuesta Responder a este mensaje
#4 KL
18/09/2006 - 21:46 | Informe spam
Hay cosas raras en tu codigo, p.ej. no entiendo por que declaras las variables a nivel de proyecto. Enviame el libro con el codigo
incluido al (quitando NOSPAM y PLEASE) y vere que puedo hacer.

Saludos,
KL


"Diego" wrote in message news:
KL

El código completo que tengo es el sgte:
Dim MaiList As String
Dim AuxFil, AuxCol, IniCol, IniFil, FinCol, FinFil As Integer
Dim Lista As Range

Sub EnviarMailPromo()

'Ubica se ubica en la 1a celda
Cells(1, 1).Select

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

'Busca el área donde esta la lista de e-mails
'Primero busca la celda superior izquierda
Cells.Find(What:="e-mail Trabajo").Activate
ActiveCell.Offset(1, 0).Select
IniCol = ActiveCell.Column
IniFil = ActiveCell.Row
'El área es de solo 2 columnas
FinCol = IniCol + 1
'Inicia la busqueda de la última fila
Cells.Find(What:="Nombre", LookAt:=xlWhole).Activate
AuxFil = ActiveCell.Row + 1
AuxCol = ActiveCell.Column
Do While Cells(AuxFil, AuxCol) <> ""
AuxFil = AuxFil + 1
Loop
FinFil = AuxFil

'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
-

La impresión que tengo es que estoy a un paso de conseguir enviar ese mail,
pero no lo logro hacer.
En mi PC los únicos argumentos que acepta son de tipo boolean, por eso
supongo el error.
Algunas veces en el pasado me han ocurrido errores del mismo tipo, y la
solución vino por activar alguna referencia.
Espero puedas ayudarme.

Gracias.
Respuesta Responder a este mensaje
#5 Gabriel Raigosa
30/09/2006 - 18:42 | Informe spam
Carpeta
Descripción
Dirección

1
** Microsoft Excel *
http://esnips.com/web/GabrielRaigosa

2
Archivos para usar en clase
http://esnips.com/web/RaigosaClase

3
Fechas y Horas
http://esnips.com/web/RaigosaFechasHoras

4
Formato y Formato Condicional
http://esnips.com/web/RaigosaFormatos

5
Foro Excel
http://esnips.com/web/ForoExcel

6
Funciones de Busqueda
http://esnips.com/web/RaigosaBusqueda

7
Funciones de Texto
http://esnips.com/web/RaigosaTexto

8
Funciones Financieras
http://esnips.com/web/RaigosaFinancieras

9
Funciones Logicas
http://esnips.com/web/RaigosaLogicas

10
Graficos con Excel
http://esnips.com/web/RaigosaGraficos

11
Grupo (Sabados)
Privado

12
Grupo (Viernes)
Privado

13
Grupo Excel Septiembre
Privado

14
Juegos con Excel
http://esnips.com/web/RaigosaJuegosExcel

15
Macros con Excel
http://esnips.com/web/Macros-con-Excel

16
Manuales Excel
http://esnips.com/web/RaigosaManuales

17
Paginas WEB
http://esnips.com/web/RaigosaPaginasExcel

18
Practicas - XLS
http://esnips.com/web/RaigosaPracticasXLS

19
Tablas Dinámicas
http://esnips.com/web/RaigosaTablasDinamicas

20
TEST
http://esnips.com/web/GabrielRaigosa-test

21
Validación
http://esnips.com/web/RaigosaValidacion

22
Varios
http://esnips.com/web/RaigosaVarios

23
VBA - Visual Basic para Aplicaciones
http://esnips.com/web/RaigosaVBA



Gabriel Raigosa
http://esnips.com/web/Raigosa
http://esnips.com/web/ForoExcel
"Diego" escribió en el mensaje
news:
| 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.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida