Académique Documents
Professionnel Documents
Culture Documents
(Combinar Correspondencia)
En este artculo vamos a ver nuevamente cmo podemos pasar datos de Excel a Word con una
macro. Sin embargo, aunque el titulo indica que podemos usar una macro en Excel, no es
necesariamente obligatorio hacerlo. Se puede hacer directamente desde Word con una macro o
incluso manualmente.
Este artculo est relacionado con varios temas o artculos ya vistos, como ser : Impresin
Mltiple en Excel con macro (Parte 1), Impresin Mltiple en Excel con macro (Parte 2), Pasar
datos de Excel a plantilla de Word con macro, Imprimir en documento de Pdf.
En resumen lo que hacemos es imprimir de una sola vez todos los documentos creados a travs de
una plantilla de Word y con los datos tomados de una hoja de Excel. Estos datos son las variables
de la plantilla.
Click en la imagen para ver el video relacionado sino a travs de este Link.
Recuerden que en el canal de YouTube ExcelminiApps estn todos los videos que son complento
del blog.
Como hacemos siempre vamos a utilizar una mini aplicacin de ejemplo para mostrar la idea.
En este caso utilizamos una plantilla de Word llamada Credencial. Y un documento de Excel
que ya habamos usado en el artculo Pasar datos de Excel a plantilla de Word con macro.
Credencial.dotx
Esta es la plantilla de la Credencial, como ven no contiene los datos. Tiene el espacio para el
nombre en la parte superior y el nombre de la jornada en la parte inferior, como ejemplo.
Pasar Datos a Excel.xlsm
Como ven es un archivo de Excel habilitada para macros segn la extensin.
Tenemos los datos de los asistentes a nuestra jornada y adems tenemos la ruta completa de la
plantilla de Word.
Esta plantilla no la podemos utilizar como esta porque necesitamos que los datos estn en forma
de lista. Entonces creamos una hoja auxiliar donde acomodamos los datos.
La hoja auxiliar no tiene formato y contiene los encabezados de cada columna o campo.
Visto los elementos principales lo que hacemos es crear una macro utilizando la funcin crear
correspondencia.
Para eso vamos a Word, abrimos la plantilla, vamos a programador y elegimos grabar macro.
Lo que hizo esta accin es tomar cada encabezado de esa lista como un campo, el cual lo
podemos agregar a nuestra plantilla por lo que elegimos el campos de Nombre del Participante de
la Jornada y el Nombre de la Jornada. Como estamos grabando una macro a la vez, me muevo
con las direccio nales del teclado para acomodar los campos.
Y listo, tenemos nuestra plantilla con los datos de Excel que son variables. Arriba a la derecha
podemos ver la vista previa de cada uno pero no lo usamos para que no se grabe en la macro.
Ahora para finalizar tenemos la opcin de imprimir documento o enviar por correo. En este caso
queremos imprimir.
Antes de utilizar esta opcin debemos asegurarnos de que este predeterminada una impresora de
pdf en la lista de impresoras. Sino imprimir el documento el impresora predeterminada. Si todo
esta correcto te pedir una ubicacin para guardar el Pdf y un nombre. Luego paramos la macro.
Y tendremos el resultado esperado.
Macro1
En este caso si la macro grabada se llama macro 1, esta macro hace todo lo que hicimos
manualmente en forma automatizada con el archivo de Excel seleccionado. Si cambia el nombre
del archivo deberamos volver a crear la macro o retocar el cdigo. En este caso no
recomendable. No es necesario explorar el cdigo de la macro.
Ahora, recuerdan que tenamos un cdigo para pasar los datos de Excel a Word. Vamos a utilizar
el mismo cdigo modificado. Este cdigo crea el documento nuevo de Word a travez de la
plantilla y ejecuta nuestra macro:
----
Sub toWord()
'ExcelminiApps 2016
'Ruta de la plantilla de word
warch = Hoja1.Range("B23").Text & Hoja1.Range("B24").Text
'Con la variable siguiente definimos que vamos a trabajar con un documento de Word.
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
'Creamos un documento nuevo con la plantilla
objWord.Documents.Add Template:=warch, NewTemplate:=False, DocumentType:=0
'Activa el documento de word
objWord.Activate
'Ejecutamos la macro de word
objWord.Run MacroName:="macro1"
'Cerramos la variable
Set objWord = Nothing
End Sub
---
Como ven se agrego una lnea para llamar a la macro de Word llamada macro1.
Eso es todo , cuando mediante un botn desde el archivo de Excel ejecutemos la macro toWord
nos crear nuestro documento nico con extensin PDF donde estarn volcados todos los datos.
Esto es muy interesante, prctico y rpido. Como dijimos ni siquiera es necesario crear las
macros, pueden utilizar Combinar Correspondencia directamente.
Por otro lado, sino quieren estar elegiendo manualmente la impresora predeterminada al
momento de ejecutar la macro , pueden utilizar este cdigo dentro de la macro de Excel.
-----
'Elegir impresora
With Dialogs(wdDialogFilePrintSetup)
.Printer = "Microsoft Print To Pdf"
.DoNotSetAsSysDefault = True
.Execute
End With
---
Keys:
Pasar datos de Excel a Word.
Imprimir en Pdf con macro .
Combinar Correspondencia en Word
Macros de Word y Excel.
Mail Merge.
How to Use Microsoft Word to Extract Data From Excel.