Factura en Excel Parte 3 – Imprimir factura y guardarla como PDF
PREVIO: FACTURA EN EXCEL PARTE 2
En esta tercera entrega de nuestro Proyecto Factura en Excel, modificaremos la macro VBA que realizamos en el video 2 donde le diremos a la macro que al momento de guardar la información de la factura en la hoja Detalle de facturas, mandaremos imprimir la factura, además de poder guardar la misma factura en formato PDF. Al finalizar lo anterior se nos preguntará si deseamos borrar los datos de la factura para comenzar con otra desde cero.
Imprimir factura
La factura ya está diseñada para imprimirse en una sola hoja. Es importante considerar que si mandamos imprimir la factura, ésta se imprimirá en la Impresora predeterminada que tengamos en nuestra PC. Para elegir la Impresora:
-
Nos vamos a la pestaña Archivo > Imprimir.
-
En la sección Impresora desplegamos las impresoras configuradas en nuestra PC.
Figura 1. Eligiendo la impresora predeterminada para imprimir la factura.
Ver Video Factura en Excel Parte 3
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
Añadiremos el siguiente código VBA para imprimir la factura
ThisWorkbook.ActiveSheet.PrintOut Copies:=1
Al momento de elegir el botón Guardar e Imprimir se imprimirá la factura y posteriormente se guardará la información de la misma en la hoja Detalle de facturas.
Figura 2. Imprimiendo la factura y guardando los datos en el histórico.
Guardando factura como PDF
En este tutorial también incluiremos un código VBA para guardar la factura en formato PDF. Los pasos que se seguirán para guardar la factura en PDF son:
-
Se elige la captura donde deseamos que se guarde el archivo PDF.
-
Se convierte el archivo y posteriormente se abre el archivo PDF.
Figura 3. Guardamos la factura en formato PDF.
Código VBA de la macro
Para guardar la factura en formato PDF nos guiamos en este Tutorial donde ya había mostrado un ejemplo similar.
Option Explicit 'EXCELeINFO 'MVP Sergio Alejandro Campos 'http://www.exceleinfo.com 'https://www.youtube.com/user/sergioacamposh 'http://blogs.itpro.es/exceleinfo Sub GuardarFactura() Dim NombreHoja As String Dim HojaDestino As Range Dim NuevaFila As Integer Dim FilasFactura As Integer Dim i As Integer Dim j As Integer Dim NumFactura As Integer Dim Ruta As String Dim Respuesta As Integer NombreHoja = "Detalle de facturas" FilasFactura = Application.WorksheetFunction.CountA(Range("Factura[CÓDIGO]")) NumFactura = ThisWorkbook.Sheets("Factura").Range("E4").Value ''''''''''''''''''''''''''''''''''''' If FilasFactura = 0 Or Range("valCliente").Value = "" Then _ MsgBox "Debes elegir un ciente e ingresar un código", vbExclamation, "EXCELeINFO": Exit Sub ThisWorkbook.ActiveSheet.PrintOut Copies:=1 'Propiedad FileDialog With Application.FileDialog(msoFileDialogFolderPicker) .InitialFileName = Application.DefaultFilePath & " \ " .Title = "EXCELeINFO - Seleccionar carpeta" .Show If .SelectedItems.Count = 0 Then Else Ruta = .SelectedItems(1) MsgBox "Guardando en PDF Factura '" & NumFactura & "'. Presione Aceptar para continuar...", _ vbInformation, "EXCELeINFO" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ Ruta & "\" & "Factura-" & NumFactura & ".pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True End If End With ''''''''''''''''''''''''''''''''''''' With ThisWorkbook.Sheets(NombreHoja) For i = 1 To FilasFactura Set HojaDestino = ThisWorkbook.Sheets(NombreHoja).Range("A1").CurrentRegion NuevaFila = HojaDestino.Rows.Count + 1 .Cells(NuevaFila, 1).Value = Date .Cells(NuevaFila, 2).Value = NumFactura .Cells(NuevaFila, 3).Value = Range("valCliente").Value For j = 1 To 4 .Cells(NuevaFila, j + 3).Value = ThisWorkbook.Sheets("Factura").Cells(12 + i, 1 + j) Next j Next i End With MsgBox "Alta exitosa", vbInformation, "EXCELeINFO" ''''''''''''''''''''''''''''''''''''' Respuesta = MsgBox("Deseas borrar los datos?", vbYesNo + vbQuestion, "EXCELeINFO") If Respuesta = vbYes Then With ThisWorkbook.Sheets("Factura") .Range("valCliente").ClearContents .Range("B13:B23").ClearContents .Range("d13:d23").ClearContents End With Else End If ''''''''''''''''''''''''''''''''''''' End Sub
Descarga el archivo de ejemplo
Factura en Excel Parte 3 – Imprimir factura y guardar como PDF – EXCELeINFO.xlsm
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.
SIGUIENTE: FACTURA EN EXCEL PARTE 4