Error al guardar pdf en ruta " " o inexistente

Intento guardar un rango de hoja en pdf en una carpeta, con ruta asignada desde un rango de celda, el problema que tengo es que necesito validar si esta carpeta existe para que no me genere error o en caso de generar el error que pueda obtener el mensaje con la opción de poder asignarle ruta, este es mi modulo

Sub EXPORTAR_PDF()
'_______________'''EXPORTAR PDF'''_______________''
'si existe error mostrar mensaje
  On Error GoTo Controlerror
'selecciono hoja a exportar
    Sheets("formatosalidamanual").Visible = True
    Worksheets("formatosalidamanual").Select
'selecciono rango a exportar
    Set RangoExportar = Sheets("formatosalidamanual").Range("A1:" & "G15")
'asigno nombre al archivo pdf
         Nombre = Sheets("formatosalidamanual").Range("E4")
'asigno la ruta de carpeta destino
            Carpeta = Hoja15.Cells(2, 5)
    If Right(Carpeta, 1) = "/" Then
        RutaCompleta = Carpeta & Nombre
    Else
        RutaCompleta = Carpeta & "/" & Nombre
    End If
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=RutaCompleta _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=False
Controlerror:
MsgBox "Falta ruta para back up de remicion", vbInformation, " Operacion No es posible "
rutapdf = falso
Exit Sub
End Sub

el problema es que siempre aun existiendo la ruta me muestra el mensaje de error de TO GO

1 respuesta

Respuesta
2

H o l a:

Te anexo la macro actualizada

Sub EXPORTAR_PDF()
    '_______________'''EXPORTAR PDF'''_______________''
    Sheets("formatosalidamanual").Visible = True
    Worksheets("formatosalidamanual").Select                            'hoja a exportar
    Set RangoExportar = Sheets("formatosalidamanual").Range("A1:G15")   'rango a exportar
    nombre = Sheets("formatosalidamanual").Range("E4")                  'nombre al archivo pdf
    ruta = Hoja15.Cells(2, 5)                                           'ruta de carpeta destino
    '
    If Right(ruta, 1) <> "\" Then ruta = ruta & "\"
    If Dir(ruta, vbDirectory) = "" Then
        res = MsgBox("No existe la carpeta: " & ruta & vbCr & vbCr & _
                     "Quieres seleccionar la carpeta", _
              vbQuestion & vbYesNo, "SELCCIÓN DE CARPETA")
        If res = vbNo Then Exit Sub
        '
        ruta = ThisWorkbook.Path & "\"
        With Application.FileDialog(msoFileDialogFolderPicker)
            .Title = "Selecciona una carpeta"
            .AllowMultiSelect = False
            .InitialFileName = ruta
            If .Show <> -1 Then Exit Sub
            ruta = .SelectedItems(1) & "\"
        End With
    End If
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ruta & nombre, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, OpenAfterPublish:=False
    MsgBox "Archivo Pdf generado", vbInformation
End Sub

La diagonal que estás poniendo es esta "/" y debes poner esta "\", tal vez, por eso te envía error.

Actualicé la macro para que también te solicite la ruta en caso de que no exista.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas