Cómo exporto en pdf desde VBA y que el nombre de la carpeta sea el valor de una celda

Tengo el siguiente código y me funciona, es decir me guarda todas las hojas del documento como pdf en el mismo directorio donde esta el libro

Sub PDF()
Sheets("1-1").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "\1-1.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Sheets("1-2").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "\1-2.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Sheets("1-3").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "\1-3.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Sheets("1-4").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "\1-4.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Sheets("1-5").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "\1-5.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub

pero yo quiero que además quede guardado en una carpeta con el nombre de una celda, es decir, si en la celda "A1" dice "julio2016", las hojas queden guardadas en \julio2016\1-1.pdf
\julio2016\1-2.pdf etc.

si en la celda "A1" dice "agosto2016", las hojas queden guardadas en

\agosto2016\1-1.pdf
\agosto2016\1-2.pdf etc.

1 respuesta

Respuesta
1

Podes declarar en una variable la ruta completa:

ruta = Thisworkbook.Path & "\" & [A1]

Y luego en cada línea del Filename:= ruta & "\1-1.pdf"   y así con cada hoja.

También se podría realizar un pequeño bucle que recorra una matriz con los nombres de las hojas, pero como ya lo tenés escrito no hace falta cambiar más que la línea del Filename.

muchas gracias, si funciona pero debo crear la carpeta previamente hay forma de que el mismo macro cree la carpeta?

Listo quedó así muchas gracias

Sub PDF()
ruta = ThisWorkbook.Path & "\" & [I1]
On Error Resume Next
MkDir ruta
Sheets("GENERAL").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ruta & "\GENERAL.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Sheets("1-1").ExportAsFixedFormat Type:=xlTypePDF, _
 Filename:=ruta & "\1-1.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Sheets("1-2").ExportAsFixedFormat Type:=xlTypePDF, _
 Filename:=ruta & "\1-2.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub

Muy bien hecho. Qué bueno que mientras aquí en mi lugar es de noche, los usuarios resuelven lo que faltó aclarar ;)

(No mencionaste que había que 'crear' la carpeta, solo que había que tomar el nombre de la celda A1)

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas