Guardar PDF desde Excel verificando si existe un PDF repetido

Tengo una macro que guarda un archivo de Excel en PDF; la tarea es la siguiente, en la hoja llamada "impresion", en se selecciona el rango B2:AL72, y el nombre del archivo lo toma del dato que hay en la misma hoja en la celda A77, y guarda el archivo PDF en una carpeta especifica del equipo.

Si en la carpeta ya existe un archivo PDF con el mismo nombre, la instrucción hace que se guarde con el nombre de la celda A77 seguido de un guión y un numero.

La macro es la siguiente:

Sub ImpPDF()
'
' ImpPDF Macro

Application.ScreenUpdating = False
Sheets("impresion").Select
Range("B2:AL72").Select
N = Cells(77, 1)
m = 1
archivo = ThisWorkbook.Path & "\ARCHIVO\PDF\" & N & ".pdf"
Do While True
If Dir(archivo) <> "" Then
archivo = ThisWorkbook.Path & "\ARCHIVO\PDF\" & N & "-" & m & ".pdf"
m = m + 1
Else
Exit Do
End If
Loop
'
Selection.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=archivo, _
Quality:=xlQualityStandard, IncludeDocProperties:=False, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
'
End Sub

Quisiera saber cómo hacer para que antes de guardar el PDF se encuentra que hay un archivo PDF con nombre igual, antes de guardarlo con el nombre, el guión y el consecutivo correspondiente, me muestre un mensaje de alerta, ¿advirtiéndome qué se encontró un archivo PDF con el mismo nombre?

1 respuesta

Respuesta
7

Te anexo la macro con el mensaje de advertencia:

Sub ImpPDF()
'Por.Dante Amor
' ImpPDF Macro
    Application.ScreenUpdating = False
    Sheets("impresion").Select
    Range("B2:AL72").Select
    n = Cells(77, 1)
    m = 1
    archivo = ThisWorkbook.Path & "\ARCHIVO\PDF\" & n & ".pdf"
    If Dir(archivo) <> "" Then
        MsgBox "Se encontró un archivo PDF con el mismo nombre", vbexclamantion
    End If
    Do While True
        If Dir(archivo) <> "" Then
            archivo = ThisWorkbook.Path & "\ARCHIVO\PDF\" & n & "-" & m & ".pdf"
            m = m + 1
        Else
            Exit Do
        End If
    Loop
    '
    Selection.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=archivo, _
    Quality:=xlQualityStandard, IncludeDocProperties:=False, _
    IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub

Saludos.Dante Amor

Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas