Factura en Excel Parte 5 – Macro VBA para enviar PDF de la factura por email

Factura en Excel Parte 5 - Macro VBA para enviar PDF de la factura por email

PREVIO: FACTURA EN EXCEL PARTE 4.2

En esta quinta y última de nuestro Proyecto Factura en Excel vamos a desarrollar una macro VBA paso a paso la cual nos servirá para enviar el PDF de la factura por correo electrónico. Pero antes modificaremos la macro que genera facturas nueva y vamos a indicarle que al momento de guardar los datos de la factura en la hoja Detalle de facturas, también guarde la ruta completa del archivo PDF generado y así la macro Enviar mail tomará esa dirección y el nombre de los archivos PDF para adjuntarlos en un email. Debes tener instalado Outlook de Office en tu PC para que la macro funcione.

La ventaja de esta macro es que si tienes varias cuentas configuradas en Outlook, podrás elegir por cuál se hará el envío del archivo PDF de la factura.

Nueva columna para la ruta de las facturas en PDF

En la hoja Detalle de facturas tenemos una tabla que hasta este momento sólo guarda datos propios de la factura. Vamos a añadirle una nueva columna que llamaremos NOMBRE_ARCHIVO la cual nos guardará la ruta completa y el nombre de los archivos PDF.

Agregamos una nueva columna para guardar la ruta completa donde están los archivos PDF.

Figura 1. Agregamos una nueva columna para guardar la ruta completa donde están los archivos PDF.

En la carpeta donde guardamos los archivos PDF ya contamos con algunos archivos de las pruebas que realizamos en los otros videos.

Carpeta donde guardamos nuestras facturas en PDF.

Figura 2. Carpeta donde guardamos nuestras facturas en PDF.

Ver video Factura en Excel Parte 5

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Modificar macro para guardar la ruta del archivo PDF

Modificamos la macro que Guarda e imprime la macro y añadiremos una nueva línea para guardar la ruta completa y el nombre del archivo PDF.

.Cells(NuevaFila, 8).Value = Ruta & “\” & “Factura-” & NumFactura & “.pdf”

La línea anterior se añade en el procedimiento GuardarFactura que puedes consultar completo en el archivo a descargar. Lo encuentras al final de este tutorial.

Imprimir o guardar factura en PDF sin mostrar los botones

En los comentarios de Youtube me han preguntado cómo podemos imprimir las facturas sin que se muestren los botones de Guardar e imprimir o el de Consultar factura. Lo que debemos hacer es asignarle la propiedad de No imprimir a cada uno de los botones:

  • Damos clic derecho en un botón.
  • Elegimos Tamaño y propiedades.
  • En Propiedades desmarcamos la opción Imprimir objeto.

Imprimimos la factura sin mostrar los botones.

Figura 3. Imprimimos la factura sin mostrar los botones.

Macro VBA para enviar el archivo de la factura PDF por email

Debo hacerte algunas aclaraciones que debes tomar en cuenta para usar la macro para enviar Emails.

  • Usaremos Outlook de Office para enviar los emails.
  • Debemos activar una referencia al mismo Outlook.
  • Podemos adjuntar cualquier archivo en el correo.
  • Si tienes varias cuentas configuradas en tu Outlook, puedes decidir por cuál se enviará la factura.

Activar referencia

Para que la macro funcione es necesario activar una Referencia a Outlook de Office, ya que será el programa por el cual se enviarán los correos.

  • Entramos al IDE de Visual Basic para Aplicaciones con [Alt] + [F11].
  • Entramos al menú Herramientas > Referencias.
  • Activamos Microsoft Outlook 16.0 Object Library.

Activamos la Referencia a Outlook de Office 365.

Figura 4. Activamos la Referencia a Outlook de Office 365.

Como lo comenté, es necesario contar con Outlook de Office 2010, 2013, 2016 o 365.

Usamos Outlook de Office para enviar las facturas por email.

Figura 5. Usamos Outlook de Office para enviar las facturas por email.

Botón para enviar factura PDF por email

En la hoja Consulta-Factura donde devolvemos los valores de determinada factura consultada añadiremos un botón que diga Enviar pdf por email el cual ejecutará la macro EnviarEmail que enviará el archivo PDF asociado a la factura consultada por email.

Botón para enviar el archivo PDF de la factura consultada por email.

Figura 6. Botón para enviar el archivo PDF de la factura consultada por email.

Macro VBA para enviar PDF de la factura por email

Option Explicit

'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh
'http://blogs.itpro.es/exceleinfo

Sub EnviarEmail()

Dim OutlookApp As Outlook.Application
Dim MItem As Outlook.MailItem
Dim Asunto As String
Dim Correo As String
Dim Msg As String
Dim n_factura As String

'Asignar valores a variables
n_factura = Sheets("Consulta-Factura").Range("E6").Value
Asunto = "Envío de la factura " & n_factura
Correo = "sergioacamposh@hotmail.com"
Msg = "Se envía la factura " & n_factura

Set OutlookApp = New Outlook.Application
Set MItem = OutlookApp.CreateItem(olMailItem)

With MItem
    .To = Correo
    .Subject = Asunto
    .Body = Msg
    .Attachments.Add n_factura
    .SentOnBehalfOfName = "tu cuenta de correo origen"
    '.SendUsingAccount = OutlookApp.Session.Accounts.Item(1)
    '.Display
    .Send
End With

Set MItem = Nothing
Set OutlookApp = Nothing
    
End Sub

Descargar el archivo de ejemplo

Descargar el ejemplo Factura en Excel Parte 5 – Enviar factura PDF por email – EXCELeINFO.zip

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

PROYECTO COMPLETO FACTURA EN EXCEL

You may also like...

RECIBE CONTENIDO EXCLUSIVO

Tips, trucos, videos para convertirte en un EXPERTO EN EXCEL y llegar al éxito. Suscríbete y recibe el mejor contenido en tu correo.