Macro para guardar hoja excel en PDF

Tengo la siguiente macro en un módulo para exportar una hoja de excel a formato PDF

Worksheets("PrintDietaMacros").ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=ThisWorkbook.Path & "\EEE.pdf", quality:=xlQualityStandard, _
    includedocproperties:=True, ignorePrintAreas:=False, openAfterPublish:=True

El problema está en que guarda la macro siempre con el mismo nombre, en este caso "EEE" y si guardo de nuevo se sobreescribe. ¿Cómo puedo hacer para que me guarde el PDF variando el nombre del archivo  de forma automática asignando CódigodeCliente_NombreCompleto_Fecha_nºsesión ?

Cada uno de los datos mencionados que la macro debe buscar los debe encontrar en celdas, lógicamente código y nombre en la hoja de datos principal y la fecha y el nº de sesión en la hoja sobre la que se trabaja.

En resumen, si yo no modifico ninguno de los datos es posible que el nuevo archivo se sobrescriba, pero si cambia el nº de sesión, la fecha o el usuario, el archivo debe ser un nuevo pdf.

2 Respuestas

Respuesta
2

Sería así

Nombre = range ("a1").value & range ("b1").value  y range ("c1").value 

Ruta = ThisWorkbook.path 

 Worksheets("PrintDietaMacros").ExportAsFixedFormat Type:=xlTypePDF, _     Filename:=ruta & nombre & ".pdf", quality:=xlQualityStandard, _     includedocproperties:=True, ignorePrintAreas:=False, openAfterPublish:=True

No olvides valorar para cerrar la pregunta si te silve

Respuesta
2

H o l a:

Te paso la macro y actualiza las celdas para el nombre del pdf

Ruta = ThisWorkbook.Path & "\"
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
    nomb = [A1] & "_" & [A2] & "_" & [A3] & "_" & [A4] ' EN ESTA LINEA CAMBIA LAS CELDAS PARA EL NOMBRE DEL ARCHIVO
Worksheets("PrintDietaMacros").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Ruta & nomb & ".pdf", _
quality:=xlQualityStandard, includedocproperties:=True, _
ignorePrintAreas:=False, openAfterPublish:=False
MsgBox "Se ha guardado la hoja en PDF", vbInformation

No olvides de valorar la respuesta saludos!

¡Gracias!  Faltaba colocar el range previo a los paréntesis en tu código para que identificase los datos de la hoja, por el resto bien! graciñas! un saludo

Mi tiempo tiene un valor puedes cambiar la valoración y de esta manera seguir aportando saludos!

También funciona como lo puse y me ahorro código

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas