Guardar varias hojas de Excel en un mismo PDF con cada nombre de cliente

Tengo hecha una macro que me convierte el excel en PDF (solo de una hoja) y me exporta cada PDF de cada cliente a la ruta que le tengo asignado. Necesito que me convierta la primera y segunda hoja del excel a PDF (el mismo PDF) y que se guarde cada PDF con el nombre del cliente tal y como tengo ahora, pero no hay manera de hacerlo. Ahora mismo tengo esta Macro, ¿me podéis ayudar?

Sub MACROPRINTTODOS()

'

' MACROPRINT Macro Genera PDF de todos los concesionarios del Rango

'

Dim codConces As Range

Set codConces = Range(Range("J103"), Range("J217"))

For Each nombre In codConces

    Range("A9") = nombre

    Application.Calculate

    Range("a6:ae90").Select

    Range("a9").Activate

    Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

    "d:\Lids\" & nombre & ".pdf", _

    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _

    :=False, OpenAfterPublish:=False

    Range("B19").Select

Next nombre

End Sub

1 respuesta

Respuesta
1

Te anexo una macro

Sub MACROPRINTTODOS()
'Mod.Por.DAM
    Dim codConces As Range
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    h1.Select
    Set codConces = h1.Range(Range("J103"), Range("J217"))
    h1.Copy after:=Sheets(Sheets.Count)
    Set h3 = ActiveSheet
    h3.Cells.Clear
    h1.Select
    For Each nombre In codConces
        If nombre <> "" Then
            Range("A9") = nombre
            Application.Calculate
            h1.Range("a6:ae90").Copy h3.Range("A1")
            h3.HPageBreaks.Add Before:=h3.Range("A86")
            h2.Range("a6:ae90").Copy h3.Range("A86")
            h3.Range("A1:AE180").ExportAsFixedFormat Type:=xlTypePDF, _
                Filename:="C:\trabajo\" & nombre & ".pdf", _
                Quality:=xlQualityStandard, IncludeDocProperties:=True, _
                IgnorePrintAreas:=False, OpenAfterPublish:=False
            h3.Cells.Clear
        End If
    Next nombre
    Application.DisplayAlerts = False
    h3.Delete
End Sub

Lo que hace la macro es copiar el rango de la hoja1 en una hojanueva y después copiar el rango de la hoja2 en la hojanueva.

Cambia en la macro los nombres "Hoja1" y "Hoja2" por los nombres de tus hojas.

Cambia en la macro este rango h2. Range("a6:ae90"). Copy h3. Range("A86"), por el rango que quieres de la hoja2.

Prueba y me comentas.

Hola Dante Amor,

La macro ha funcionado para hacer el PDF de las dos hojas, pero el formato de las hojas se deshacen, en vez de en 2 hojas se hace en 4 hojas porque se corta y las columnas muchas son muy estrechas. Aunque el rango que ponga es el más grande. Ademas de los datos ninguno es correcto me aparecen todo en 0.

Sabes que es lo que está mal?

Mil gracias!

La Hoja1 es la que tiene el formato, debes adecuar la hoja1 a como quieres que se imprima.

Para que veas los valores, utiliza esta macro para copiar valores

Sub MACROPRINTTODOS()
'Mod.Por.DAM
    Dim codConces As Range
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    h1.Select
    Set codConces = h1.Range(Range("J103"), Range("J217"))
    h1.Copy after:=Sheets(Sheets.Count)
    Set h3 = ActiveSheet
    h3.Cells.Clear
    h1.Select
    For Each nombre In codConces
        If nombre <> "" Then
            Range("A9") = nombre
            Application.Calculate
            h1.Range("a6:ae90").Copy
            h3.Range("A1").PasteSpecial Paste:=xlValues
            h3.HPageBreaks.Add Before:=h3.Range("A86")
            h2.Range("a6:ae90").Copy
            h3.Range("A86").PasteSpecial Paste:=xlValues
            h3.Range("A1:AE180").ExportAsFixedFormat Type:=xlTypePDF, _
                Filename:="C:\trabajo\" & nombre & ".pdf", _
                Quality:=xlQualityStandard, IncludeDocProperties:=True, _
                IgnorePrintAreas:=False, OpenAfterPublish:=False
            h3.Cells.Clear
        End If
    Next nombre
    Application.DisplayAlerts = False
    h3.Delete
End Sub

Después de que lo intentes, si todavía tienes problemas, envíame tu archivo para revisarlo, me dices cuáles son las 2 hojas que quieres en un mismo pdf y en una tercera hoja me pones cómo debe quedar el pdf.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas