Macro para guardar excel a pdf y guardarlo en la misma ruta donde se encuentra el libro de excel

He creado un libro de excel y dentro del mismo quiero generar una macro que me permita guardar una de las hojas del libro con un nombre y una ruta específica.

La cuestión del nombre del archivo pdf que se exporta la he solucionado gracias a otros mensajes que he visto en el foro. De modo que el nombre del archivo que se genera consta de tres partes que se corresponden con la información contenida en las celdas "M4", "M5" y "M6" de la Hoja 01.

El problema lo tengo a la hora de definir la ruta donde debe generarse dicho archivo. Como mi intención es compartir mi libro de excel con unos compañeros de trabajo, para que ellos no tengan problema a la hora de usar el documento creo que lo "más sencillo" sería indicar en la macro que la ruta donde debe guardarse el documento sea la misma ruta donde se encuentra el libro de excel. Este es el punto que no sé cómo solucionar.

Sub Guardarpdf()
'
' Guardarpdf Macro
'
'
Sheets("Hoja 01").Select
ChDir "C:\Users\Luis\Desktop"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"" & Range("M4").Value & (" - ") & Range("M5").Value & (" - ") & Range("M6").Value, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
Sheets("PRINCIPAL").Select
Range("B11").Select
End Sub

Gracias por leer mi pregunta hasta el final. Si a alguien se le ocurre alguna solución para el problema que planteo, le estaría muy agradecido.

Respuesta
1

Quedaría así tu macro:

Sub Guardarpdf()
'
    ' Guardarpdf Macro
    '
    '
    ruta = ThisWorkbook.Path & "\"
    Sheets("Hoja 01").Select
    'ChDir "C:\Users\Luis\Desktop"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=ruta & "" & Range("M4").Value & (" - ") & Range("M5").Value & (" - ") & Range("M6").Value, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=True
    Sheets("PRINCIPAL").Select
    Range("B11").Select
End Sub

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

¡Gracias! He actualizado la macro siguiendo las indicaciones que me dabas y funciona correctamente. He probado a ubicar el libro excel en distintas ubicaciones de mi ordenador y no da ningún problema.

Me ha llamado la atención de que dentro del código de la macro se mantiene la línea

'ChDir "C:\Users\Luis\Desktop"

Ahora no tengo tiempo, pero más tarde probaré a abrir el excel en otro ordenador y te comento si da algún problema o si funciona igualmente.

Muchas gracias por tomarte el tiempo de pensar y resolver el problema que planteaba.

Un saludo,

Luis.

Al inicio de la línea tiene un apostrofe '

Con ese carácter la línea queda como un comentario, es decir, la macro ya no ejecuta las instrucciones que están después del apostrofe.

Sal u dos

1 respuesta más de otro experto

Respuesta
1
Sub Guardarpdf()
'Macro Actualizada
Sheets("Hoja 01").Select
ruta = ThisWorkbook.Path & "\"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ruta & _
"" & Range("M4").Value & (" - ") & Range("M5").Value & (" - ") & Range("M6").Value, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
Sheets("PRINCIPAL").Select
Range("B11").Select
End Sub

Actualicé el código valoras la respuesta para finalizar saludos!!!

¡Gracias! He actualizado la macro con las indicaciones que me has hecho y, al cambiar el libro excel a distintos lugares de mi ordenador, no ha habido problema en generar el documento pdf.

Gracias nuevamente por tu ayuda, me había quedado bastante atascado y me has ahorrado muchos quebraderos de cabeza.

Un saludo,

Luis.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas