¿Alguien me sabe sobre una macro que no cancela exportar a PDF?

Les comento que tengo varias Macros que realizan Guardar como" en PDF y otra que pregunta sobre imprimir y con que impresora, el problema radica en que al llegar a la pantalla en donde se finaliza la exportación a PDF o la impresión, si yo quiero cancelar me realiza igual la operación, me imagino que debe ser un problema entre un IF y un Else, pero no he podido llegar a dicha solución.

Les dejo la Macro que utilizo

PDF:

Sub PDFActiveSheet()
Dim ws As Worksheet
Dim strPath As String
Dim myFile As Variant
Dim strFile As String
On Error GoTo errHandler
Dim Archivo As String
Dim primera, ultima As Variant

Archivo = Sheets("GENERAL").Range("Q2").Value

Confirmacion = MsgBox("Desea Crear un PDF de la '" & Archivo & "' ?", _
vbQuestion + vbYesNo, "EXCELeINFO")
Application.ScreenUpdating = False
If Confirmacion = vbYes Then
Set ws = ActiveSheet

'enter name and select folder for file
' start in current workbook folder
strFile = Replace(Replace(Archivo, " ", " "), ".", "_") _
& "_" _
& Format(Now(), "dd/mm/yyyy") _
& ".pdf"
strFile = ThisWorkbook.Path & "\" & strFile

myFile = Application.GetSaveAsFilename _
(InitialFileName:=strFile, _
FileFilter:="PDF Files (*.pdf), *.pdf", _
Title:="Archivo")

If myFile <> "False" Then
Range("A1:E73").Select
Range("A1").Activate

Selection.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=myFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True

MsgBox "Archivo PDF Creado."
End If

exitHandler:
Exit Sub
errHandler:
MsgBox "No se ha generado el Archivo PDF"
Resume exitHandler
End If
End Sub

1 respuesta

Respuesta
1

Te cambio la forma de guardar el PDF por esta, también cambié el formato de fecha, quité las "/" porque no se permiten en los nombres de archivo y le puse "-"

Sub PDFActiveSheet()
    Dim ws As Worksheet
    Dim strPath As String
    Dim strFile As String
    Dim Archivo As String
    Dim primera, ultima As Variant
    Archivo = Sheets("GENERAL").Range("Q2").Value
    Confirmacion = MsgBox("Desea Crear un PDF de la '" & Archivo & "' ?", _
    vbQuestion + vbYesNo, "EXCELeINFO")
    Application.ScreenUpdating = False
    If Confirmacion = vbYes Then
        Set ws = ActiveSheet
        'enter name and select folder for file
        ' start in current workbook folder
        strFile = Replace(Replace(Archivo, " ", " "), ".", "_") _
        & "_" _
        & Format(Now(), "dd-mm-yyyy") _
        & ".pdf"
        strFile = ThisWorkbook.Path & "\" & strFile
        '
        'Act.Por.Dante Amor
        With Application.FileDialog(msoFileDialogSaveAs)
            .Title = "Guardar archivo como"
            .AllowMultiSelect = False
            .InitialFileName = strFile
            .FilterIndex = 25
            If .Show Then
                march = .SelectedItems(1)
                Range("A1:E73").Select
                Range("A1").Activate
                Selection.ExportAsFixedFormat _
                        Type:=xlTypePDF, _
                        Filename:=march, _
                        Quality:=xlQualityStandard, _
                        IncludeDocProperties:=True, _
                        IgnorePrintAreas:=False, _
                        OpenAfterPublish:=True
                MsgBox "Archivo PDF Creado.", vbInformation
            Else
                MsgBox "No se ha generado el Archivo PDF", vbExclamation, "CANCELADO"
            End If
        End With
    End If
End Sub

Saludos.Dante Amor

Dante, la macro esta increiblemente mas sencilla que la mia :) 

lo unico que dirige a la carpeta actual y necesito que me guarde los PDF en la siguiente ruta;

C:\Users\Silviom\Dropbox\IHL (1)\IHL Silvio\cotizaciones\excel

me puedes ayudar?

Te anexo la macro con la actualización, revisa que el nombre de la ruta esté bien escrito y no tendrás problemas.

Sub PDFActiveSheet()
    Dim ws As Worksheet
    Dim strPath As String
    Dim strFile As String
    Dim Archivo As String
    Dim primera, ultima As Variant
    Archivo = Sheets("GENERAL").Range("Q2").Value
    Confirmacion = MsgBox("Desea Crear un PDF de la '" & Archivo & "' ?", _
    vbQuestion + vbYesNo, "EXCELeINFO")
    Application.ScreenUpdating = False
    '
    ruta = "C:\Users\Silviom\Dropbox\IHL (1)\IHL Silvio\cotizaciones\excel\"
    If Confirmacion = vbYes Then
        Set ws = ActiveSheet
        'enter name and select folder for file
        ' start in current workbook folder
        strFile = Replace(Replace(Archivo, " ", " "), ".", "_") _
        & "_" _
        & Format(Now(), "dd-mm-yyyy") _
        & ".pdf"
        strFile = ruta & "\" & strFile
        '
        'Act.Por.Dante Amor
        With Application.FileDialog(msoFileDialogSaveAs)
            .Title = "Guardar archivo como"
            .AllowMultiSelect = False
            .InitialFileName = strFile
            .FilterIndex = 25
            If .Show Then
                march = .SelectedItems(1)
                Range("A1:E73").Select
                Range("A1").Activate
                Selection.ExportAsFixedFormat _
                        Type:=xlTypePDF, _
                        Filename:=march, _
                        Quality:=xlQualityStandard, _
                        IncludeDocProperties:=True, _
                        IgnorePrintAreas:=False, _
                        OpenAfterPublish:=True
                MsgBox "Archivo PDF Creado.", vbInformation
            Else
                MsgBox "No se ha generado el Archivo PDF", vbExclamation, "CANCELADO"
            End If
        End With
    End If
End Sub

Saludos.Dante Amor

¡Gracias! Excelente resultado, había un error en un \ que me enviaba a otro fichero pero lo cambie y funciono enseguida. 

Muchas gracias por todo Dante.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas