0 Bewertungen0% fanden dieses Dokument nützlich (0 Abstimmungen)
253 Ansichten4 Seiten
Proceso para exportar a pdf un libro completo de Excel o una hoja específica. Utiliza programación en VBA (macros) y una lista para seleccionar la hoja que se desea exportar.
Originaltitel
Exportar a PDF todas las hojas o una hoja especifica de un archivo de Excel.pdf
Proceso para exportar a pdf un libro completo de Excel o una hoja específica. Utiliza programación en VBA (macros) y una lista para seleccionar la hoja que se desea exportar.
Proceso para exportar a pdf un libro completo de Excel o una hoja específica. Utiliza programación en VBA (macros) y una lista para seleccionar la hoja que se desea exportar.
Exportar a PDF todas las hojas o una hoja especfica de un archivo de Excel Excel mediante la opcin Guardar como... permite guardar un archivo en formato pdf, muchas veces es necesario tener control sobre cual hoja deseamos guardar en formato pdf en lugar de hacerlo con el libro completo, esto es especialmente til en procesos automatizados de generacin de documentos como facturas, cuentas de cobro y en general de documentos que son elaborados en una o varias hojas y que deseamos guardarlos y enviarlos en formato pdf para reducir el riesgo de alteracin de la informacin contenida en ellos.
El diseo presentado a consideracin tiene los siguientes elementos:
La hoja 1 (Data1) tiene dos botones, el primero exporta a pdf el libro completo (Data1 y Data2) y el segundo botn exporta a pdf cualquier hoja del libro. Cuando se presiona el segundo botn se despliega una opcin para seleccionar la hoja que se desea exportar.
www.saberdetodo.com Excel Sin Lmites 2
Previo al diseo de la macro se debe agregar los elementos necesarios para su funcionalidad, realizar lo siguiente: Agregar dos o ms hojas al libro con los formatos necesarios segn las necesidades Insertar en la primera hoja (o en la hoja que desee) dos rectngulos redondeado y establecer el texto y formato. Un rectngulo lo denomina Exportar Todo y al otro rectngulo Exportar una Hoja. El rectngulo se encuentra en Insertar -> Ilustraciones -> Formas -> Rectngulos -> Rectngulo redondeado
La Macro que exporta todas las hojas del archivo realiza los siguientes pasos bsicos: 1. Genera el nombre y ruta donde se guardar el archivo exportado 2. Exporta el libro completo a pdf. El archivo queda guardado en la misma carpeta donde se encuentra el archivo principal
La Macro se muestra a continuacin:
Sub Create_PDF_All_Workbook() 'Exporta el libro completo a PDF Dim RutaArchivo As String '1. Genera nombre del archivo y ruta donde ser guardado RutaArchivo = ThisWorkbook.Path & "\" & Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 5) & ".pdf" '2. Realiza el proceso de exportar, especifica el tipo de formato ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=RutaArchivo, _ Quality:=xlQualityMinimum, IncludeDocProperties:=True, IgnorePrintAreas:=False, _ OpenAfterPublish:=False End Sub
La Macro que exporta una hoja especfica realiza los siguientes pasos bsicos: 1. Despliega el formulario para seleccionar la hoja a exportar a pdf 2. Evalua si hay hoja seleccionada 3. Genera el nombre y ruta donde se guardar el archivo exportado 4. Exporta el libro completo a pdf. El archivo queda guardado en la misma carpeta donde se encuentra el archivo principal
La Macro se muestra a continuacin:
Sub Create_PDF_Specific_Sheet() 'Exporta una hoja especfica a PDF Dim RutaArchivo As String HojaSeleccionada = "" '1. Muestra el formulario para seleccionar la hoja a exportar frm1.Show '2. Si no se seleccion una hoja en el formulario, termina sin hacer nada If HojaSeleccionada <> "" Then 'Si se seleccion una hoja en el formulario, exporta la hoja a pdf '3. Genera nombre del archivo y ruta donde ser guardado RutaArchivo = ThisWorkbook.Path & "\" & HojaSeleccionada & ".pdf" '4. Realiza el proceso de exportar, especifica en que tipo de formato se exporta With Sheets(HojaSeleccionada) .ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=RutaArchivo, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ www.saberdetodo.com Excel Sin Lmites 3 OpenAfterPublish:=False End With End If End Sub
El siguiente paso es crear el formulario y adicionar el cdigo de los eventos asociados:
Private Sub UserForm_Initialize() Dim Hoja As Worksheet 'Limpia el contenido anterior del List Box lb1.Clear 'Lee las hojas que tiene el libro For Each Hoja In Worksheets 'Llena el List Box con los nombres de las hojas lb1.AddItem Hoja.Name Next End Sub
Private Sub cbAceptar_Click() 'Valida si hay un 'item seleccionado If lb1.ListIndex <> -1 Then 'Guarda el nombre de la hoja seleccionada en 'una variable global Mdulo1.HojaSeleccionada = lb1.Text Unload Me Else MsgBox "Select a Item" End If End Sub
Finalmente a cada botn (rectngulo redondeado) se le asigna la macro correspondiente. Cuando se ejecutan las dos acciones los resultados que se observan en la carpeta contenedora es el siguiente:
www.saberdetodo.com Excel Sin Lmites 4
Optimizaciones sugeridas:
Manejar ambas opciones con un slo botn, en la ventana de seleccin se puede incluir cada una de las hojas y una opcin adicional para todas las hojas. Integrar el desarrollo para que se ejecute desde cualquier hoja e incluso desde cualquier libro de Excel