Cómo enviar rango de celdas en un mensaje de correo electrónico

14/05/2006 - 01:01 por Francisco Mty | Informe spam
Resumen
En Microsoft Excel, puede enviar una parte de un libro como un mensaje de
correo electrónico. Este Este artículo contiene código de ejemplo de
Microsoft Visual Basic para aplicaciones que muestra cómo automatizar enviar
rango de celdas en un mensaje de correo electrónico.
El ejemplo siguiente del código de VBA envía un número de diez celdas A1 B5
del libro activo a la dirección de correo electrónico especificada en el
código:

Sub Send_Range()

' Select the range of cells on the active worksheet.
ActiveSheet.Range("A1:B5").Select

' Show the envelope on the ActiveWorkbook.
ActiveWorkbook.EnvelopeVisible = True

' Set the optional introduction field thats adds
' some header text to the email body. It also sets
' the To and Subject lines. Finally the message
' is sent.
With ActiveSheet.MailEnvelope
.Introduction = "This is a sample worksheet."
.Item.To = "E-Mail_Address_Here"
.Item.Subject = "My subject"
.Item.Send
End With
End Sub


Nota Este código sólo funciona con Microsoft Outlook. No funciona con
ninguna versión de Microsoft Outlook Express.
Reemplace E-Mail Address Here con la dirección de correo electrónico a la
que desea enviar el intervalo.

Nota Item.Send en el código desencadena una advertencia de seguridad de
Outlook para mostrar el mensaje siguiente:
Un programa intenta enviar correo electrónico automáticamente en su nombre.
¿Desea permitir esto? Si esto es inesperado, puede ser un virus y debería
elegir "No".
Haga clic en Sí para permitir que se envíe el correo.
 

Leer las respuestas

#1 Héctor Miguel
14/05/2006 - 07:04 | Informe spam
hola, Francisco !

Resumen
En Microsoft Excel, puede enviar una parte de un libro como un mensaje de correo electronico.
Este Este articulo contiene codigo de ejemplo de Microsoft Visual Basic para aplicaciones
que muestra como automatizar enviar rango de celdas en un mensaje de correo electronico...



solo algunas notas... 'complementarias' :D

1) el codigo que expones [al igual que el metodo 'SendMail'] lo [unico] que 'hace' es...
'depositar' el envio en la bandeja de salida del sistema de correo instalado en la pc ;)
2) si [outlook ?] se esta 'ejecutando'... el envio es 'de inmediato'... en caso contrario... 'hasta' que lo abras :-(
[con las 'consabidas' advertencias -de outlook- de que 'alguien esta intentando enviar...'] :))
3) obtienes el mismo resultado si [desde cualquier aplicacion de office] usas el menu/comando/boton...
-> archivo / enviar a... -> destinatario de correo [o sea]... el -> ActiveWorkbook.EnvelopeVisible = True ;)
desde donde podras 'personalizar' asunto, comentario, decidir si envias la hoja o un rango seleccionado, etc.
solo se requiere que outlook y office sean de la misma version_numero [por si las dudas] :))
4) para conocer diferentes alternativas/formas/metodos/... para hacer envios -> por vba...
-> [generalmente] se 'sugiere' visitar la pagina de Ron de Bruin [especificamente la seccion de 'envios'] <-
http://www.rondebruin.nl/sendmail.htm
donde podran 'navegar' para conocer otras opciones como:
- CDO [sin mensajes de advertencia] no 'requiere' de un servidor de correo 'instalado' o...
- Outlook-Express [amigable aunque con poco soporte' en vba] o...
- Outlook [de office] que resulta mucho mas 'amigable'
incluso... se puede 'descargar' un complemento para los envios 'directos' desde excel en:
http://www.rondebruin.nl/mail/add-in.htm

saludos,
hector

__ el resto del mensaje original __
Sub Send_Range()
' Select the range of cells on the active worksheet.
ActiveSheet.Range("A1:B5").Select
' Show the envelope on the ActiveWorkbook.
ActiveWorkbook.EnvelopeVisible = True
' Set the optional introduction field thats adds
' some header text to the email body. It also sets
' the To and Subject lines. Finally the message
' is sent.
With ActiveSheet.MailEnvelope
.Introduction = "This is a sample worksheet."
.Item.To = "E-Mail_Address_Here"
.Item.Subject = "My subject"
.Item.Send
End With
End Sub
Nota Este codigo solo funciona con Microsoft Outlook. No funciona con ninguna version de Microsoft Outlook Express.
Reemplace E-Mail Address Here con la direccion de correo electronico a la que desea enviar el intervalo.
Nota Item.Send en el codigo desencadena una advertencia de seguridad de Outlook para mostrar el mensaje siguiente:
Un programa intenta enviar correo electronico automaticamente en su nombre.
Desea permitir esto? Si esto es inesperado, puede ser un virus y deberia elegir "No".
Haga clic en Si para permitir que se envie el correo.

Preguntas similares