Crear un libro en Excel y guardar en PDF

Dispongo de una macro que me crea una nueva hoja de Excel de un informe y me exporta en PDF y lo guarda en la ruta donde se encuentra el archivo.

Necesito cambiar un poco el código ya que ahora necesito que en vez de crearse una hoja de Excel se cree un libro y que a la hora de guardarlo me permita seleccionar la ruta.

Lo mismo pasaría cuando se exporte el documento en PDF, poder seleccionar la ruta de guardado.

Este es el código que usa la macro.

Sub crearHojaInforme()     'se crea hoja Informe, se exporta,
                          'se agrega el nombre a la lista de hojas y se limpia el form
Dim sino, buscarHoja, sh
Dim valorCelda As String, RutaArchivo As String
Dim x As Integer
sino = MsgBox("¿Confirmas guardar copia de este formulario?", vbQuestion + vbYesNo, "Confirmar")
If sino <> vbYes Then Exit Sub
'1 - se crea una nueva hoja como copia de Informe
Hoja5.Copy After:=Worksheets(Sheets.Count)
'se la nombre con el contenido de B21
On Error Resume Next
ActiveSheet.Name = Hoja5.Range("B21").Value
If errNumber > 0 Then
    MsgBox "Ya existe una hoja con este nombre. Se guarda con nombre provisorio y continúa con el proceso.", , "Información"
    On Error GoTo 0
End If
'a la copia se le quitan los posibles botones
For Each sh In ActiveSheet.Shapes
    If sh.Type = 8 Then sh.Delete
Next sh
Hoja5.Select   'vuelve a la hoja informe
'2 - a continuación se exporta la nueva hoja como PDF
sino = MsgBox("¿Confirmas que quieres guardar en PDF", vbQuestion + vbYesNo, "Confirmar")
If sino <> vbYes Then Exit Sub
RutaArchivo = ActiveWorkbook.Path & "\" & ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=RutaArchivo, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False

1 Respuesta

Respuesta
3

Visita:

Cursos de Excel y Macros - YouTube


Te paso la macro:

Sub CrearInforme()
'Por Dante Amor
  Dim sino As VbMsgBoxResult
  Dim hoja As String
  Dim sPath As String, nombre As String
  Dim wb2 As Workbook
  '
  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
  '
  'Guarda Hoja5 como libro
    'Seleccionar ruta para guardar el libro
    With Application.FileDialog(msoFileDialogFolderPicker)
      .Title = "Selecciona ruta para guardar el libro"
      If .Show <> -1 Then Exit Sub
      sPath = .SelectedItems(1)
    End With
    nombre = Hoja5.Name
    Hoja5.Copy
    Set wb2 = ActiveWorkbook
    'Guarda Libro
    wb2.SaveAs sPath & "\" & nombre & ".xlsx", xlOpenXMLWorkbook
  '
  'Guarda Hoja5 como PDF
    'Seleccionar ruta para guardar el libro
    With Application.FileDialog(msoFileDialogFolderPicker)
      .Title = "Selecciona ruta para guardar el PDF"
      If .Show <> -1 Then Exit Sub
      sPath = .SelectedItems(1)
    End With
    'Guarda PDF
    wb2.ExportAsFixedFormat Type:=xlTypePDF, _
      Filename:=sPath & "\" & nombre & ".pdf", _
      Quality:=xlQualityStandard, IncludeDocProperties:=True, _
      IgnorePrintAreas:=False, OpenAfterPublish:=False
  '
  'cierra el libro
    wb2.Close False
    Application.ScreenUpdating = True
End Sub

Recomendaciones:

Consejos para desarrollar macros . curso de excel, curso de macros, excel, macros - YouTube

Consejos y trucos de excel para mejorar la presentación de tus datos. - YouTube

Sal u dos. Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas