¿Como Imprimir desde PDF Macros?

¿Cómo puedo hacer que este codigo imprima en PDF con el fin de guardarlo en la computadora? Saludos

Sub ImprimirFormatos1()
'
' ImprimirFormatos1 Macro
'

'
    Dim Ciclo As String
   

   
'    ActiveSheet.Range("j2").Select
'    ActiveCell.FormulaR1C1 = Ciclo
   Titulo = MsgBox("Se imprimirá desde el renglón en el que estás posicionado ahorita, y se detendrá hasta que encuentre un renglón en blanco. Puedes dejar de imprimir en cualquier momento presionando Escape varias veces rapidamente")
    Ciclo = ActiveCell
    Do While Ciclo <> Empty

    Selection.End(xlToLeft).Select
    ActiveCell.Offset(0, 1).Range("A1").Select
    Selection.Copy
    Sheets("Formato").Select
    Range("A11").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A29").Select
    Sheets("Base de Datos").Select
    ActiveCell.Offset(0, 3).Range("A1").Select
    Selection.Copy
    Sheets("Formato").Select
    Range("A29").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
    Sheets("Base de Datos").Select
    ActiveCell.Offset(1, 0).Range("A1").Select

    Ciclo = ActiveCell
    Loop

End Sub

Respuesta
5

H o l a:

Te anexo la macro actualizada.

El nombre del archivo pdf será lo que tengas en la celda A11 de la hoja "formato", si quieres otro nombre, cambia en esta línea de la macro:

arch = Range("A11")

'

Los archivos pdf se guardarán en la misma carpeta donde tienes el archivo con la macro.

'

Si no quieres que se impriman, quita esta línea de la macro:

ExecuteExcel4Macro "PRINT(1,,, 1,,,,,,,, 2,,, TRUE,, FALSE)"



Sub ImprimirFormatos1()
' ImprimirFormatos1 Macro
    '
    Dim Ciclo As String
    Titulo = MsgBox("Se imprimirá desde el renglón en el que estás posicionado ahorita, y se detendrá hasta que encuentre un renglón en blanco. Puedes dejar de imprimir en cualquier momento presionando Escape varias veces rapidamente")
    Ciclo = ActiveCell
    Do While Ciclo <> Empty
        Selection.End(xlToLeft).Select
        ActiveCell.Offset(0, 1).Range("A1").Select
        Selection.Copy
        Sheets("Formato").Select
        Range("A11").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("A29").Select
        Sheets("Base de Datos").Select
        ActiveCell.Offset(0, 3).Range("A1").Select
        Selection.Copy
        Sheets("Formato").Select
        Range("A29").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
        '
        'Por.Dante Amor
        ruta = ThisWorkbook.Path & "\"
        arch = Range("A11")
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:=ruta & arch & ".pdf", Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
        'Por.Dante Amor
        '
        Sheets("Base de Datos").Select
        ActiveCell.Offset(1, 0).Range("A1").Select
        Ciclo = ActiveCell
    Loop
End Sub

¡Gracias! 

El PDF en efecto se guarda tal y como lo señale en la celda A11 (en este caso esa celda corresponde al nombre completo de "equis" usuario) Por ejemplo: el PDF se guarda de esta forma: "FulanitoPerez.pdf "

Pero ¿Como puedo hacer para que el archivo PDF se guarde con el nombre de 2 celdas?

Ejemplo: A11 + A29

para que el pdf se guarde como "FulanitoPerezCalidad e Inocuidad, ISO9001.pdf"

Gracias

Cambia en la macro esta línea:

arch = Range("A11")

Por esta:

arch = Range("A11") & " " & Range("A29")

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas