Factura en Excel Parte 3 – Imprimir factura y guardarla como PDF

Factura en Excel Parte 3 - Imprimir factura y guardar 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.

Eligiendo la impresora predeterminada para imprimir la factura.

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.

Imprimiendo la factura y guardando los datos en el histórico.

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.

Guardamos la factura en formato 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

Descargar el 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

You may also like...