Macro guardar Hoja de EXCEL en formato PDF, Imprimir y Borrar

Siguiendo en el rubro construcción vial, quería saber si se puede hacer un macro que al presionar el botón me guarde la hoja Impresión ARENA en formato .PDF y adquiriendo como nombre el valor de una celda especifica en el escritorio de mi pc, una vez guardada que me de la opción de IMPRIMIR y que me deje elegir las cantidades, y una vez cerrada la rutina de IMPRESIÓN que me aparezca un cartel preguntando si quiero imprimir cargar datos otra vez.- Para mas datos, el rango de impresión de mi planilla va desde A1:S47

1 respuesta

Respuesta
1

Para crear un "SISTEMA" que permita elegir que opción usar se deben usar formularios y eso ya es un trabajo un poco pesado...

Yo sugeriría utilizar un botón, para exportar y luego imprimir... y que al terminar la rutina, el sistema esté siempre "listo" para cargar información...

Esta macro debe exportar a PDF y posteriormente imprimir... ojo que debes revisar la macro y adaptar algunas cosas como se indica...

Option Explicit
Sub Exportar_a_PDF_e_Imprimir()
'
' by Jaime Segura
'
Dim NombreArchivo As String
Dim RangoEscogido As Range
Dim pregunta1 As Integer
Dim pregunta2 As Integer
Dim pregunta2a As Integer

' Usar solo una de las dos lineas siguientes
NombreArchivo = "C:\Mis documentos\Jaime....etc..." ' si deseas que se grabe en una ruta especifica ( NO incluir ultimo \ )
NombreArchivo = ActiveWorkbook.Path ' si deseas que se grabe en la ruta actual

' Adaptar esta linea según hoja y la celda donde este el nombre de archivo
NombreArchivo = NombreArchivo & "\" & Sheets("Método de la arena").Range("A47").Value

' Establecer el rango a exportar, usar solo UNA de las siguientes LINEAS
Set RangoEscogido = Sheets("Método de la Arena") ' para exportar toda la hoja
Set RangoEscogido = Sheets("Método de la Arena").Range("A1:S47") ' para exportar solo ese rango

If Left(NombreArchivo, 4) = ".pdf" Then NombreArchivo = NombreArchivo & ".pdf"
Sheets("Método de la arena").Select
Range("A1").Select

' PREGUNTA PARA EXPORTAR EL ARCHIVO
pregunta1 = MsgBox("¿Desea exportar el archivo a PDF?", vbYesNoCancel, "Confirmación para Exportar el archivo a PDF")
If pregunta1 = vbCancel Then Exit Sub
If pregunta1 = vbYes Then
' Esta linea crea el PDF
RangoEscogido.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NombreArchivo, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
MsgBox "Datos exportados a " & NombreArchivo, vbOKOnly, "INFORME"
End If

' PREGUNTA PARA IMPRIMIR EL ARCHIVO
pregunta2 = MsgBox("¿Desea imprimir el archivo?", vbYesNo, "Confirmación para Exportar el archivo a PDF")
If pregunta2 = vbYes Then
' Solicitar numero de copias
pregunta2a = InputBox("¿Cuantas hojas desea imprimir? (0 para cancelar)", "Parámetro de Impresión")
' Esta linea imprime
If pregunta2a > 0 Then RangoEscogido.PrintOut Copies:=pregunta2a, Collate:=True
End If

End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas