Vous êtes sur la page 1sur 9

Blog: http://fjweb.blogspot.

com/

Web: http://nimp.dnsdigital.org/fjweb/default/Default.html

Enviar Felicitación Navideña por Email con Off. 2007

Hola Amigos, hoy vamos a ver un ejercicio de Excel que nos permitirá hacer un Envío de correo
electrónico, para enviar nuestra felicitación de Navidad a las personas que queramos.

En el Proceso crearemos un Archivo de Excel al que llamaremos Correo.xls.


Dentro de este archivo crearemos una lista con los correos de nuestros contactos, escribiremos el
Asunto, El Mensaje y el Archivo con la imagen de la Postal que vamos a enviar en estas Navidades.

Una Vez tengamos estos datos introducidos, añadiremos un poco de programación en VBA, para que el
programa de correo “OUTLOOK”, envié a cada uno de los contactos que hemos puesto en esta Lista,
un correo con la Postal de Navidad.
Os pongo una imagen de cómo quedara la Hoja de Excel

Para que todo funcione bien necesitaremos unas pequeñas condiciones

1ª – La programación funciona con Outlook, necesitas tenerlo en el PC.

2ª – Outlook tiene que ser el correo predeterminado en el momento del envió.

3ª – Los Correos a quien enviemos la postal, tienes que tenerlos como contactos en Outlook.

4ª – Antes de Ejecutar el Código, tienes que abrir el Outlook, para evitar cualquier error.

Nota: Los Nombres de las columnas los utilizaremos en la programación, no los cambies.
La programación utilizada procede de http://www.ayudaexcel.com del usuario Osquro.
Muchas Gracias por este gran código.

Visita Nuestra Web: http://nimp.dnsdigital.org/fjweb/default/Default.html Página 1


Blog: http://fjweb.blogspot.com/

Web: http://nimp.dnsdigital.org/fjweb/default/Default.html

Bueno, pasemos a crear el Archivo.

Abrimos Excel en un Libro Nuevo y lo guardaremos con el Nombre de “Correo”


Utilizaremos la Fila 3, para los encabezados de las Columnas.

Nombres de las Columnas:

Celda (A3) – PARA


Celda (B3) – ASUNTO
Celda (C3) – CUERPO
Celda (D3) – ADJUNTO
Celda (E3) – PIE

En la Columna A (“PARA”) iremos escribiendo los correos electrónicos de los contactos a quien vamos a enviar el
correo con la Postal de Navidad.
En la Columna B (“ASUNTO”) escribiremos el Asunto del Correo que enviamos. Ejemplo: Feliz Navidad.
En la Columna C (“CUERPO”) escribiremos el Mensaje que queremos enviar. Ejemplo: Feliz Navidad Hermano…
En la Columna D (“ADJUNTO”) escribiremos la dirección del archivo de la Postal Ejemplo: C:\Postal.jpg
En la Columna E (“PIE”) escribiremos nuestros datos Ejemplo: Un Saludo Fjweb.

Nota de vez en cuando pulsaremos en Guardar por si pasa algo, no perder el trabajo hecho.

Piensa que cada Email lo puedes enviar personalizado si en Asunto y Cuerpo escribes cosas diferentes para cada
usuario que tienes en la Lista.

Pongamos un Ejemplo:

Como veis en la Imagen podemos variar el correo que enviamos a cada uno de los contactos.

Una vez que tengamos todos los datos introducimos pasaremos a escribir la programación necesaria para que
todo funcione y crearemos el Botón “Enviar Postales” que ejecutara el código VBA.

Antes de esto configuraremos un poco los Colores de las celdas para indicar el encabezado, etc., según gustos.

Una pequeña aclaración antes de seguir, cuando esté listo y ejecutemos el código, el Outlook enviara uno tras
otro todos los correos que tenemos en la columna A. Pero claro, si son mucha cantidad y el proceso es seguido,
los servidores de correo pueden creer que lo que enviamos es Spam y ponerlo en correo no deseado.
Para evitar esto, es mejor enviar listas de 10 o 15 contactos cada vez y con un asunto diferente, para que los
servidores de correo no lo detecten como Spam.

Puedes ir creando las listas en diferentes Hojas Ejemplo - hoja1 10 contactos, hoja2 10 contactos, etc.
Después copia el botón en todas las hojas y guarda el Excel.
Para enviar los correos entra en cada hoja y pulsa en el botón Enviar Postales, te enviara la lista de esa hoja.
Es solo una sugerencia para evitar pequeños problemillas que se puedan crear.

Visita Nuestra Web: http://nimp.dnsdigital.org/fjweb/default/Default.html Página 2


Blog: http://fjweb.blogspot.com/

Web: http://nimp.dnsdigital.org/fjweb/default/Default.html

Ahora Vamos a colocar el Código VBA, para que funcione el envió de correos.

Opciones para Office 2007:

Para poder acceder a los Módulos y Macros es importante activar la Ficha Programador (Menú Programador)

Datos de la Ayuda de Office buscando Programador

Mostrar la ficha Programador o ejecutar en modo para programadores

Debe mostrar la ficha Programador o ejecutar en modo para programadores cuando vaya a escribir macros, ejecutar macros
que haya grabado previamente, o crear aplicaciones para utilizar con programas de Microsoft Office.

Haga lo siguiente en estos programas de Microsoft Office:

WORD, EXCEL O POWERPOINT

1. Haga clic en el botón de Microsoft Office y, a continuación en Opciones de Nombre de programa, donde
Nombre de programa es el nombre del programa que está utilizando, por ejemplo, Opciones de Word.

2. Haga clic en Más frecuentes y, a continuación, active la casilla de verificación Mostrar ficha Programador en la
cinta de opciones.

Una vez Activado este Menú nos aparecerá en la barra de Menús /Programador.

Veamos las opciones más Básicas de los botones de la Barra Programador

Visual Basic – Abre el Editor de Código VBA


Macros – Opciones de Creación y Ejecución de Macros.
Grabar Macro – Nos Graba acciones que vamos relazando y lo guarda en código VBA.
** Una forma muy interesante de aprender cómo se hacen cosas con código.
** Grabas una macro y después entras en el Editor VBA (Visual Basic) y miras lo que el
programa ha escrito.
Insertar – Nos servirá para añadir controles en nuestra hoja Ejemplo un Botón.
Propiedades – Datos de los Controles que utilicemos. Ejemplo Nombre, opciones, etc.
Ver código – Veríamos el código escrito para ese control.

Hay más pero estos son los que más utilizaremos.

Seguramente a muchos os sonara a chino, pero si quieres aprender o ya sabes, es muy interesante aprender un
poco de programación para hacer funcionar algunas cosas que de otra forma no lo conseguiríamos.
Esto que os voy explicando lo veremos según lo utilicemos en este Excel, que estamos creando.

Visita Nuestra Web: http://nimp.dnsdigital.org/fjweb/default/Default.html Página 3


Blog: http://fjweb.blogspot.com/

Web: http://nimp.dnsdigital.org/fjweb/default/Default.html

Procederemos a abrir el Editor de VBA


Nota: Esto es igual en office 2007 y 2003.
En 2003 para ver las Macros: Herramientas / Macros

Pulsaremos sobre el Botón Visual Basic

Se Abrirá la Ventana del Editor de Visual Basic (VBA)

Pulsaremos en Insertar / Módulo

Modulo1 – Aquí copiaremos el código necesario para que funcione nuestro Excel

Un poco de información,

Un modulo es un libro donde escribimos información que el programa entiende y nos permite utilizarlo, ya sea a
través de Macros o controles, que nosotros preparemos en el Archivo Excel.

El código se escribe dentro de unas subrutinas a las que luego llamaremos desde la Macro o el Control.

Una vez que introducimos Código (Macros), en el archivo y lo guardemos, al abrirlo de nuevo nos pedirá que
demos permiso para ejecutar el código, debemos permitirlo para que funcione.

Visita Nuestra Web: http://nimp.dnsdigital.org/fjweb/default/Default.html Página 4


Blog: http://fjweb.blogspot.com/

Web: http://nimp.dnsdigital.org/fjweb/default/Default.html

Código Necesario -
------------------------------------------------------------
Option Explicit

Sub PRINCIPAL()
Dim U1 As Long, i As Long
Dim Asunto As String, Para As String, Cuerpo As String, Adjunto As String, Pie As String

Call BUSCAULTIMAFILA(1, U1)

If U1 < 65500 Then


For i = 4 To U1
Asunto = ThisWorkbook.Sheets(1).Cells(i, 2)
Para = ThisWorkbook.Sheets(1).Cells(i, 1)
Cuerpo = ThisWorkbook.Sheets(1).Cells(i, 3)
Adjunto = ThisWorkbook.Sheets(1).Cells(i, 4)
Pie = ThisWorkbook.Sheets(1).Cells(i, 5)
Call ENVIACORREO(Asunto, Para, Adjunto, Cuerpo, Pie)
Next
Else
MsgBox "No existe información para enviar..."
End If
MsgBox “Los Correos se han enviado correctamente.”
End Sub

Sub ENVIACORREO(Asunto As String, Para As String, Adjunto As String, Cuerpo As String, Pie As String)
Dim OBJETOLOOK As Object
Dim OBJETOCORREO As Object

Set OBJETOLOOK = CreateObject("Outlook.Application")


Set OBJETOCORREO = OBJETOLOOK.CreateItem(0)

With OBJETOCORREO
.To = Para
.Subject = Asunto
.Body = Cuerpo & Chr(13) & Chr(13) & Chr(13) & Pie
If Adjunto <> "" Then
.Attachments.Add Adjunto, 1, , "Attachment" ' insert attachment 'olByValue=1
End If
'.CC = CONCOPIAA
.Send
End With
Set OBJETOCORREO = Nothing
Set OBJETOLOOK = Nothing

End Sub

Sub BUSCAULTIMAFILA(HH As Integer, ByRef U As Long)


U = ThisWorkbook.Sheets(HH).Range("A3").End(xlDown).Row
End Sub
----------------------------------------------------------------------
Nota: Copia el Código que hay entre las Rayas y pégalo en el Modulo1, guarda el Modulo1.
La programación utilizada procede de http://www.ayudaexcel.com del usuario Osquro.

Visita Nuestra Web: http://nimp.dnsdigital.org/fjweb/default/Default.html Página 5


Blog: http://fjweb.blogspot.com/

Web: http://nimp.dnsdigital.org/fjweb/default/Default.html

Al Guardar el Modulo nos dirá que solo puede guardar un Modulo en un Libro habilitado para Macros.

Pulsa en No, se abrirá la ventana para guardar el Documento.

Selecciona en Tipo de Archivo – Libro de Excel Habilitado para Macros

Visita Nuestra Web: http://nimp.dnsdigital.org/fjweb/default/Default.html Página 6


Blog: http://fjweb.blogspot.com/

Web: http://nimp.dnsdigital.org/fjweb/default/Default.html

Volvamos a Nuestro Excel

Si no hemos introducido los datos, introdúcelos en la forma que ves en la imagen.


Para la prueba pon la dirección de 5 amigos y les envías algo, una foto, un PPS, no se….
Lo importante es que probemos que todo queda bien antes de enviar la Postal. Así estaremos seguros del envío.

Bueno cuando tengamos todos los datos pulsaremos en Guardar el Excel, por si acaso.

El Paso que nos queda es crear un Botón para ejecutar el código que nos enviara los correos.

Pulsa en Insertar /botón/arrastra el cursor en la hoja para crear el botón.

Visita Nuestra Web: http://nimp.dnsdigital.org/fjweb/default/Default.html Página 7


Blog: http://fjweb.blogspot.com/

Web: http://nimp.dnsdigital.org/fjweb/default/Default.html

Al mismo tiempo que soltemos el ratón se creara el botón y nos abrirá la ventana “Asignar Macro”

En la Ventana “Asignar Macro”, seleccionaremos PRINCIPAL que es la Macro del código que hemos copiado en el
modulo1, y que será la que ejecute el envió de los correos.

Ahora cambiaremos el nombre a nuestro botón.

Si lo tienes seleccionado, escribe directamente en el nombre del botón.


Si no es así, pulsa botón derecho encima del botón / pulsa en Modificar Texto /

Ahora escribe un Nombre adecuado para el Botón ejemplo “Enviar Postales”

Visita Nuestra Web: http://nimp.dnsdigital.org/fjweb/default/Default.html Página 8


Blog: http://fjweb.blogspot.com/

Web: http://nimp.dnsdigital.org/fjweb/default/Default.html

Así quedara más o menos nuestro botón.

Solo nos queda Guardar los cambios y Cerrar el Excel, para que todo quede bien guardado.

Volvemos a Abrir el Excel para la Prueba.

Al Abrir nos dirá que este documento contiene Macros, tenemos que dar permiso para que funcione.

Una vez que le hemos dado el permiso y se abra el Excel pulsaremos en el botón “Enviar Postales”
Recuerda abrir antes el Outlook.
Siempre es mejor probar 4 o 5 correos y que te contesten si todo ha ido bien, para que cuando enviemos la Postal
no nos de ningún tipo de problemas.

Bueno espero que os guste y os funcione bien. Si tenéis alguna duda, pregunta en el Blog o mándame un correo a
fjweb@hotmail.es
Un Saludo, Fjweb
Blog: http://fjweb.blogspot.com/ Web: http://nimp.dnsdigital.org/fjweb/default/Default.html

Visita Nuestra Web: http://nimp.dnsdigital.org/fjweb/default/Default.html Página 9