Como guardar hoja en pdf y seleccionar carpeta o que la cree

Tengo esta macro para que me guarde la hoja activa pero da un error 214701887(80071779) en tiempo de ejecución

Como puedo soluciona el problema que presenta para que me guarde la hoja activa

Si me ayudaran les agradecería

Sub GuardarHojasComoPDF()

Dim Ruta As String
Dim NombreArchivo As String
Dim Hoja As Object

With Application.FileDialog(msoFileDialogFolderPicker)
Title = "CIERRE DE CAJA - Seleccionar carpeta"
.Show

If .SelectedItems.Count = 0 Then
'Nada
Else

Ruta = .SelectedItems(1)
For Each Hoja In ActiveWorkbook.Sheets

NombreArchivo = Hoja.Name
MsgBox "Guardar en PDF " & NombreArchivo, vbInformation, "CIERRE DE CAJA"
Hoja.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Ruta & "\" & NombreArchivo & ".pdf", OpenAfterPublish:=False
Next Hoja
End If
End With
End Sub

1 Respuesta

Respuesta
1

Tu macro funciona correctamente. Quizás optaría por colocar el mensaje antes del bucle para que no aparezca en cada copiado.

Si el nombre del archivo no fuera apto para un PDF el mensaje sería otro... lo que me hace suponer que tu Excel no permite exportar a PDF o no tengas instalado correctamente el visor PDF.

Verificalo intentando exportar manualmente cualquier hoja de tu libro desde menú Archivo, Exportar.

Incluso podrías antes encender la grabadora de macros, exportar la hoja y detener la grabadora. En un módulo encontrarás las instrucciones para cotejar con tu macro, que insisto, funciona correctamente.

La macro si sirve  pero me guarda todas las hojas  en pdf yo quiero que me guarde solo la hoja que estoy trabajando y no todas las hoja me podrías ayudar  

Entonces la macro debe quedar así:

Sub GuardarHojasComoPDF()
Dim Ruta As String
Dim NombreArchivo As String
Dim Hoja As Object
With Application.FileDialog(msoFileDialogFolderPicker)
Title = "CIERRE DE CAJA - Seleccionar carpeta"
.Show
If .SelectedItems.Count = 0 Then
'Nada
Else
Ruta = .SelectedItems(1)
   'For Each Hoja In ActiveWorkbook.Sheets
NombreArchivo = ActiveSheet.Name
MsgBox "Guardar en PDF " & NombreArchivo, vbInformation, "CIERRE DE CAJA"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Ruta & "\" & NombreArchivo & ".pdf", OpenAfterPublish:=False
   'Next Hoja
End If
End With
End Sub

Te dejé inhabilitadas las líneas del bucle que recorrían todas las hojas solo para que veas cuál ha sido el cambio. Luego las podés eliminar.

PD) ¿Podrías mejorar la valoración?

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas