Macro de Word para COMBINAR CORRESPONDENCIA y guardar cada hoja como archivo PDF

🔥 Sabías que también podemos programar macros en Microsoft Word, similar a como lo hacemos en Microsoft Excel?

👉 Siguiendo con el tema de Combinar correspondencia, en este video tutorial veremos cómo podemos guardar cada una de las cartas generadas en Word, en archivos PDF individuales.

✔️ No te pierdas este video y ve un paso adelante en el conocimiento!

Ver Video Macro en Word y combinar correspondencia

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

El preámbulo

En este otro video de Combinar correspondencia habíamos visto cómo podemos asignar formatos avanzados a los campos numéricos o de fecha. En ese mismo videos recibí alguna preguntas, entre ellas, cómo podemos guardar cada hoja como archivos individual.

Un seguido del canal, Luis Arturo, me compartió una macro de Word que permite guardar cada hoja generada con Combinar correspondencia, como archivo PDF.

Cómo lo logramos

Primero modificamos la Tabla de Excel para incluir una columna llamada Nombre de archivo.

Tabla de Excel para uso en Combinar correspondencia - exceleinfo

Tabla de Excel para uso en Combinar correspondencia – exceleinfo

Estando en Word, con la carta abierta, volvemos a elegir el origen de datos que es el archivo de Excel:

  • Pestaña correspondencia.
  • Seleccionar destinatarios.
  • Usar una lista existente.
  • Elegimos el archivo de Excel Tabla nombres – Combinar correspondencia avanzado – EXCELeINFO.xlsx
  • Seleccionamos Hoja1$
  • Aceptar

Ahora vamos a insertar el campo Nombre de archivo para que luego ese valor sea el que nos sirva de nombre para cada archivo PDF.

  • Pestaña Correspondencia.
  • Insertar campo combinado.
  • Nombre_archivo

Detrás del texto del campo Nombre_archivo vamos a incluirle “_” y después del texto “-“.

Campo Nombre archivo en combinar correspondencia - exceleinfo

Campo Nombre archivo en combinar correspondencia – exceleinfo

Editar en documentos individuales

Una vez que insertamos el campo de Nombre archivo vamos a crear un documento con todos las hojas, para luego guardardas en PDF.

  • Pestaña Correspondencia.
  • Finalizar y combinar.
  • Editar documentos individuales
  • Todos.
  • Aceptar.

Macro del ejemplo

Cuando tenemos nuestro documentos con todas las hojas, entramos al editor de VBA usando Alt + F11, insertamos un Módulo y pegamos la siguiente macro.

  • La macro nos pedirá la cantidad de hojas que tendrá cada PDF: 1.
  • La ruta donde se guardarán los archivos PDF.
  • El nombre opciones de los archivos.
Sub GenerarPdfSeparados()
'
' Declaracion de Variables
Dim paginasDocumento As Integer
Dim totalPaginas As Integer
Dim pagActual As Integer
Dim carpeta As String
Dim nombreDocs As String

' Asignacion de valores a variables
totalPaginas = ActiveDocument.Range.Information(wdNumberOfPagesInDocument)
paginasDocumento = InputBox("¿Cuántas páginas tiene cada documento?", "Número de páginas", 1)
carpeta = InputBox("Copie aquí la dirección de la carpeta destino. Por ejemplo: ", "Carpeta destino", "d:\temp\")
nombreDocs = InputBox("¿Qué nombre tendran los Documentos?", "Nombre documentos", "misdocs")

pagActual = 1
Set miRango = ActiveDocument.Content
Do While pagActual <= totalPaginas
    miRango.Find.Execute FindText:="(_)*(-)", MatchWildcards:=True
    If (miRango.Find.Found = True) Then
        miRango.Bold = True
        nombreDocs = miRango
        miRango.Delete
    End If
    ActiveDocument.ExportAsFixedFormat OutputFileName:= _
        carpeta & "\" & CInt(pagActual / paginasDocumento) & nombreDocs & CInt(pagActual / paginasDocumento) & ".pdf", ExportFormat:= _
        wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportFromTo, From:=pagActual, To:=pagActual + paginasDocumento - 1, Item:= _
        wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
        BitmapMissingFonts:=True, UseISO19005_1:=False
    ChangeFileOpenDirectory carpeta
pagActual = pagActual + paginasDocumento
Loop
MsgBox ("Generación Terminada.")
End Sub

Descarga los archivos de ejemplo

Combinar correspondencia en Word + macro.zip

Si te gustó este tutorial, por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: