Sie sind auf Seite 1von 4

www.saberdetodo.

com Excel Sin Lmites 1


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

Das könnte Ihnen auch gefallen