Macro que guarde cada hoja de un libro excel con el nombre de la hoja en un directorio concreto

Es un libro excel con muchas hojas y se necesita guardarlas individualmente en formato pdf

Con el nombre de cada hoja, que es un nombre propio con apellidos

Con Tipo de informe (este sería en común para todas las hojas; Ejem: "Val1") y habría que añadirlo automáticamente;

El mes actual (ejem: sep 15)

En un directorio concreto

Debería quedar de la siguiente forma:

 C\Informes Valoración\Informes año 2015\Antonio Gómez Martín Val 01 sep 15.pdf

1 respuesta

Respuesta
1

H o l a:

Te anexo la macro

Sub GuardarHojas()
'Por.Dante Amor
    '
    ruta = "C:\Informes Valoración\Informes año 2015\"
    ruta = "C:\trabajo\"
    For Each h In Sheets
        nombre = h.Name & " Val 01 " & Format(Date, "mmm yyyy") & ".pdf"
        h.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ruta & nombre, _
            Quality:=xlQualityStandard, IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, OpenAfterPublish:=False
    Next
    MsgBox "Hojas guardadas", vbInformation, "GUARDAR HOJAS COMO PDF"
End Sub

Hola Dante, buenos días

Ante todo, un millón de gracias

La he probado y funciona a la perfección

Quería consultarte como le podría indicar o incluir que tomara el path de la celda o celdas de una hoja en lugar de escribirlo directamente en la macro ya que va a estar cambiando esta ruta periódicamente.

Son unos cuantos libros con muchas hojas y no todos se van a guardar en el mismo Path

¿ Es posible ?

Muchas gracias de antemano 

Por ejemplo, puedes poner en cada hoja en la celda A5 la ruta que le corresponde a esa hoja, entonces quedaría así:

Sub GuardarHojas()
'Por.Dante Amor
    '
    For Each h In Sheets
        ruta = h.Range("A5")
        If Right(ruta, 1) <> "\" Then ruta = ruta & "\"
        If Dir(ruta, vbDirectory) <> "" Then
            nombre = h.Name & " Val 01 " & Format(Date, "mmm yyyy") & ".pdf"
            h.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ruta & nombre, _
                Quality:=xlQualityStandard, IncludeDocProperties:=True, _
                IgnorePrintAreas:=False, OpenAfterPublish:=False
        End If
    Next
    MsgBox "Hojas guardadas", vbInformation, "GUARDAR HOJAS COMO PDF"
End Sub

S a l u d o s .  Recuerda valorar la respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas