Enviar correo desde Excel 2007

14/04/2009 - 00:03 por maap | Informe spam
Hola a todos, tenía el siguiente procedimiento que saqué de una guía
para enviar correos electrónicos a direcciones de una lista de excel.
Me funcionaba correctamente en excel 2003, pero me da error en tiempo
de ejecución con Excel 2007 y desconozco la razón. Cualquier pista es
bienvenida.

Sub sendemail()
'utiliza vinculación tempran
'requiere referencia a la Biblioteca Outlook Object
Dim OutlookApp As Outlook.Application
Dim MIitem As Outlook.MailItem
Dim cell As Range
Dim Subj As String
Dim EmailAddr As String
Dim Recipient As String
Dim Bonus As String
Dim Msg As String

'Crear el objeto Outlook
Set OutlookApp = New Outlook.Application

'realizar un bucle por filas
For Each cell In Columns("B").Cells.SpecialCells
(xlCellTypeConstants)
If cell.Value Like "*@*" Then
'obtener los datos
Subj = "Your Annual Bonus"
Recipient = cell.Offset(0, -1).Value
EmailAddr = cell.Value
Bonus = Format(cell.Offset(0, 1).Value, "$ 0.000.")

'crear el mensaje
Msg = "Dear " & Recipient & vbCrLf & vbCrLf
Msg = Msg & " I am pleased to inform you that your annual
bonus is "
Msg = Msg & Bonus & vbCrLf & vbCrLf
Msg = Msg & "William Rose" & vbCrLf
Msg = Msg & "President"

'crear Mail Item y enviarlo
Set MIitem = OutlookApp.CreateItem(olMailItem)
With MIitem
.To = EmailAddr
.Subject = Subj
.Body = Msg
.Send

End With
End If
Next
End Sub

Po cierto las referencias a Outlook 2007 las tengo activadas y el
error que me da es en tiempo de ejecución.

Saludos y gracias!!
Miguel

Preguntas similare

Leer las respuestas

#6 maap
14/04/2009 - 20:06 | Informe spam
Gracias por tu respuesta Hector,

ese numero de error indica que Outlook "pregunta" si das tu permiso a "una aplicacion" que esta tratando de enviar un correo
(son cuestiones de seguridad en la configuracion de outlook y, a menos que las cambies, necesitas encontrar alternativas)
revisa la informacion de esta pagina: ->http://www.rondebruin.nl/mail/prevent.htm



Me estoy volviendo loco y no doy con la tecla
He entrado en el centro de confianza de Outlook (arrancandolo como
Administrador) y he cambiado para que permita el acceso desde
programación.
Ejecuto la macro y funciona!!!
Bien, vuelvo a entrar en el centro de confianza de Outllok y vuelvo a
cambiar el valor para que no permita el acceso desde programación,
evidentemente la macro deja de funcionar.

Muy bien, una vez localizado el problema, intento bajar el nivel de
seguridad nuevamente, y. nada de nada!!! no me deja ejecutar ahora
la macro!!!! increible antes si y ahora no ¿?

tambien podria ser causado por una direccion de correo NO "totalmente" valida    -???-
haz una prueba cambiando la comprobacion que haces a esa celda +/-
de: -> If cell.Value Like "*@*" Then
  a: -> If cell.Value Like "?*@?*.?*" Then



Eso lo descarto puesto que estoy haciendo inspeección sobre las
variables de los campo de las direcciones de correo y parecen
correctos.


Saludos,
Miguel Angel
Respuesta Responder a este mensaje
#7 maap
14/04/2009 - 20:25 | Informe spam
> tambien podria ser causado por una direccion de correo NO "totalmente" valida    -???-
> haz una prueba cambiando la comprobacion que haces a esa celda +/-
> de: -> If cell.Value Like "*@*" Then
>   a: -> If cell.Value Like "?*@?*.?*" Then




Bueno, ahondando más es tu respuesta donde me indicabas que podría
haber un error en el campo de dirección de correo, he probado a hacer
inspección de la variable MIItem.To y obtengo que:

Watch : : miitem.to : <Error definido por la aplicación o el
objeto> : Integer : SendMail.sendemail

La crea como Integer!!!!
Entonces hago lo siguiente: antes del .send, coloco .display y. me
muestra la composición del correo perfectamente con el campo 'To' con
el valor correcto, y además me envía el correo. La inspección de la
variable ahora pasa a ser

Watch : : miitem.to : "" : String :
SendMail.sendemail

No se, no entiendo nada ¿así de raro es el office 2007?
Respuesta Responder a este mensaje
#8 Héctor Miguel
14/04/2009 - 20:26 | Informe spam
hola, Miguel Angel !

Me estoy volviendo loco y no doy con la tecla
He entrado en el centro de confianza de Outlook (arrancandolo como Administrador)
y he cambiado para que permita el acceso desde programacion.
Ejecuto la macro y funciona!!!
Bien, vuelvo a entrar en el centro de confianza de Outllok
y vuelvo a cambiar el valor para que no permita el acceso desde programacion
evidentemente la macro deja de funcionar.
Muy bien, una vez localizado el problema, intento bajar el nivel de seguridad nuevamente
y. nada de nada!!! no me deja ejecutar ahora la macro!!!! increible antes si y ahora no ?



(hasta donde se) cuando cambias este tipo de configuraciones se modifican claves en el registro de windows
(entonces...) este cambio en el registro "entra en accion" -> la siguiente vez... que se abre esa aplicacion
convendria comprobar si cuando haces los cambios de configuracion, tambien (re)inicias outlook -?-
esto, sobre todo porque en tus lineas del codigo estableces referencias a outlook como "nueva" aplicacion...
-> Set OutlookApp = New Outlook.Application

comentas ?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida