En este artículo vamos a ver nuevamente
cómo 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 artículo está relacionado con varios
temas o artículos ya vistos, como ser : Impresión
Múltiple en Excel con macro (Parte 1), Impresión
Múltiple 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 través de una plantilla de Word y
con los datos tomados de una hoja de Excel. Estos datos son las variables de la
plantilla.
El elemento principal es la herramienta de
Word “Combinar Correspondencia” y a partir de ahí lo único que hacemos es
automatizar la tarea ya sea desde Word o desde Excel.
Click en la imagen para ver el video
relacionado sino a través de este Link.
Recuerden que en el canal de YouTube “ExcelminiApps” están todos los
videos que son complento del blog.
Como hacemos siempre vamos a utilizar una
mini aplicación de ejemplo para mostrar la idea.
En este caso utilizamos una plantilla de
Word llamada “Credencial”. Y un
documento de Excel que ya habíamos usado en el artículo “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 según la extensión.
Tenemos los datos de los asistentes a nuestra
jornada y además tenemos la ruta completa de la plantilla de Word.
Esta plantilla no la podemos utilizar como
esta porque necesitamos que los datos estén 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 función crear correspondencia.
Para eso vamos a Word, abrimos la
plantilla, vamos a programador y elegimos grabar macro.
Luego vamos a la solapa correspondencia ,
seleccionar destinatarios y luego lista existente.
Luego buscamos la ubicación del archivo de
Excel donde estaba nuestra lista auxiliar.
Lo que hizo esta acción 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 opción de
imprimir documento o enviar por correo. En este caso queremos imprimir. También se puede utilizar la opción "Editar documentos individuales...". Con esta última opción nos muestra en un solo documento todas las plantillas y lo podemos guardar como un documento único.
Antes de utilizar esta opción 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 ubicación
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
deberíamos volver a crear la macro o retocar el código. En este caso no
recomendable. No es necesario explorar el código de la macro.
Ahora, recuerdan que teníamos un código
para pasar los datos de Excel a Word. Vamos a utilizar el mismo código
modificado. Este código 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 línea
para llamar a la macro de Word llamada “macro1”.
Eso es todo , cuando
mediante un botón desde el archivo de Excel ejecutemos la macro “toWord” nos
creará nuestro documento único con extensión PDF donde estarán volcados todos
los datos.
Esto es muy interesante,
práctico y rápido. 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 código dentro de la macro de Excel.
-----
'Elegir
impresora
With Dialogs(wdDialogFilePrintSetup)
.Printer = "Microsoft Print To
Pdf"
.DoNotSetAsSysDefault = True
.Execute
End With
---
No se recomienda tocar
la macro de Word aunque si tienen ganas de experimentas lo pueden hacer y verán
que funciona.
Eso es todo, esperamos
les haya gustado. Sigan el blog y el canal. Pueden darle me gusta al artículo
también. Saludos!
-------------------------------------- FIN
Recuerden que los artículos algunas veces
requieren un mayor o menor nivel de conocimiento en ciertos temas de Excel, por
ejemplo formulas avanzadas, macros o VBA, etc. Sin embargo en los artículos se
nombran todos los elementos y con esta información podemos hacer nuestras
pequeñas investigaciones usando internet, así desarrollamos nuestro
conocimiento. Por ejemplo si utilizamos
la función “Y”, que la suponemos conocida, y no sabemos ¿qué es? podemos buscar
en internet para ver como se utiliza y cuáles son los componentes. Las mini
aplicaciones no son más que la recopilación de muchos elementos para dar forma
a una nueva idea.
Pueden descargar
algunos ejemplos (plantillas/templates) de la zona de Descargas. Si
tienen alguna duda o consulta pueden hacerlo a través del formulario de contacto.
Les recomendamos
que sigan el blog por alguno de los medios, mail o por redes sociales, para
recibir las actualizaciones y novedades.
¡Éxitos!
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.
·
Send
data from Exel to Word with macro.
18 comentarios:
Realmente útil el artículo ya que actualmente estoy haciendo las cosas programa de facturas y me vendría bien conocer como modificar los datos rápidamente y pasarlos de programa a programa para estar bien ordenado
Hola Christian, cómo estas! Gracias por escribirnos!
En cuanto a tu consulta, a que te refieres de pasar de programa en programa. Este artículo es para algo bien particular. Después, cada idea tiene una solución.
Esperamos tus comentarios.
Saludos
Amigo muy buen dia, de antemano lo felicito por este blog que ha sido de gran ayuda, lo realice paso a paso y me ha resultado efectivo; el inconveniente y es en este caso si me pudieras colaborar; es:
Realice las macros de excel en mi equipo, lo que hice fue un formulario el cual se diligencia con datos personales, luegro cree un boton y le asigne la macro, este boton graba los datos en una base de datos luego los abre en mi plantilla de word y lo imprime:
1. hay alguna manera de "anclar" o "unir" la plantilla word con la de excel, para poder enviarla mediante correo electronico.
2. al enviar los archivos (el excel y el .dot) a quien los recibe no le funciona la macro...
Si hubiese alguna forma de solucionar estos inconvenientes, quedare altamente agradecido.
Hola amigo, cómo estas! Gracias por tus comentarios!
1.En cuanto a tu consulta, esta versión de excel tiene sus limitaciones. Quizás en versiones posteriores se simplifique o se agreguen mejores complementos.
Por otro lado, a que te refieres con "anclar la plantilla de word con la de excel". Cuando sigues este procedimiento ya queda anclado por decirlo así. Vinculado de cierta manera.
2.en el caso de word es distinto que en excel, la plantillas quedan en la pc no se pueden transmitir como se puede en excel.
Esperamos tus comentarios.
Saludos
Gracias por tu pronta respuesta, amigo me refiero a que si hay alguna manera que yo pueda enviar el archivo mediante correo electronico y la persona que lo reciba pueda trabajar con el, de la misma manera;
Personalmente en una ocasion me enviaron un archivo de excel (solamente) el cual yo diligenciaba un formulario y con un boton le daba imprimir y hacia lo siguiente automaticamente
1. la formacion se guarbada en una base de datos interna del exce
2. abria un word
3. se combinaba los datos
4. se imprimia
5. se cerraba
6. volvia a quedar en el inicio de la hoja y el formulario en blanco para diligenciar mas informacion
repito todo automaticamente, tan solo se veia una especie de pestañeo mientras hacia todo el proceso
trate de mirar el codigo de fuente pero todos los accesos los tenia bloqueado.. espero haberme explicado mejor
Yo logre hacer hacer la misma funcion del archivo que describi anteriormente
1. la formacion se guarbada en una base de datos interna del exce
2. abria un word (tu foro me sirvio de gran ayuda)
3. se combinaba los datos (tu foro me sirvio de gran ayuda)
4. se imprimia (tu foro me sirvio de gran ayuda)
5. se cerraba
6. volvia a quedar en el inicio de la hoja y el formulario en blanco para diligenciar mas informacion.
lo unico que no he logrado es poder enviarlo y que funcione igual sin problemas.
quedo atento
Hola amigo,cómo estas! Gracias por tus comentarios!
En cuanto a tu consulta, te refieres a enviar el libro con las macros?
En ese caso ten cuidado en la opción que te da cuando grabas las macros "en este libro, libro nuevo, o libro de macros personal. Además recuerda que para ejecutarla debe estar en un lugar dentro de la PC.
Esperamos haber sido de ayuda y aguardamos tus comentarios.
Saludos
Buenas noches:
Llevo 1 semana dando vueltas intentando que desde una MACRO Excel se me abra un word que está enlazado a ese Excel por correspondencia, se actualice, se imprima y se cierre word sin éxito.
Por favor, me podéis decir como lo habéis realizado??, cuando abro el word sin macro sale un mensaje emergente en el que hay que dar a si para que siga la actualización de datos, si le abro desde la word no se actualizan los datos, y para poder imprimir todas las hojas de correspondencia??, como lo hago??.
Muchas gracias de antemano.
Perdonar, lo acabo de leer y lo he escrito mal.
Cuando abro el word sin macro sale una ventana emergente para continuar con la combinación de los datos de correspondencia, si le abro con la macro de Excel se abre sin combinar con los datos de correspondencia.
Se podría hacer todo desde una macro de Excel??.
Graciassss
Hola amigo, cómo estas! Gracias por escribirnos!
En cuanto a tu consulta, tienes que probar grabando la macro. Muchas veces en el código se incluye la confirmación.
Esperamos tus comentarios.
Saludos
hola amigo muchas gracias por tu esfuerzo de subir esta info tan valiosa, tengo una pregunta que hacer, hay manera de que en el archivo de word se abran todos los diplomas o reconocimientos de una sola vez y en el mismo archivo de word, por decir que en mi tabla de excel tengo 30 asistentes y quiero generar los 30 diplomas de una sola vez y no de uno en uno, agradezco tu apoyo en esta solicitud. Saludos
Hola amigo, cómo estas! Gracias por escribirnos!
En cuanto a tu consulta, se podría solo hay que hacer la automatización mediante una macro, supongo que se pueden apilar el texto de la hoja separados por un salto de página. Habría que probar.
Esperamos tus comentarios.
Saludos
Amigos, Gracias al comentario de Ernesto agregamos un nuevo párrafo a la publicación que es el siguiente:
También se puede utilizar la opción "Editar documentos individuales...". Con esta última opción nos muestra en un solo documento todas las plantillas y lo podemos guardar como un documento único.
Si se fijan en las opciones de combinar correspondencia. Una de ellas es "Editar documentos individuales...". Así que pueden modificar la macro para que se aplique esta opción y guardar como documento único de Word.
Saludos
Buen Día, si tengo varios cuadros en una misma hoja de word y quiero alimentar cada cuadro con unos datos de una lista en el excel como lo podría hacer...
En cada hoja aproximadamente tengo 6 cuadros y cada una con la información siguiente:
nombre:
cedula:
direccion:
Hola amigo, cómo estas! Gracias por escribirnos!
En cuanto a tu consulta, sirve el mismo procedimiento y el del artículo que sigue. Solo tienes que crear la plantilla de acuerdo a lo que quieres mostrar. Esperamos tus comentarios.
Saludos
Buenas Juan Pablo, primero y principal felicitaciones y muchas gracias por el blog. Segundo es un pedidosegundo, necesito un poco de ayuda para vincular unos documentos, te cuento más o menos el problema, suponiendo que tengo 4 documentos diferentes de excel (matemáticas, lengua, sociales, naturales) en cada uno tengo un listado de alumnos con sus correspondientes notas y una apreciación personal (con la misma estructura), necesito obtener un Word, donde por cada alumno se recaben los datos de los cuatro Docs de excel
Ejemplo:
Nombre: Juan Pablo
Matemáticas:10 .muy buen trabajo, sigue asi
Lengua: 9 falta mejorar la caligrafia
Sociales :8 bien
Naturales:9 eres muy buen alumno
Nombre: Rolando
Hola Platero911, gracias por tus comentarios!
En el blog tienes todo para poder hacerlo, los conceptos en los artículos que hay. Si tienes otra cosa más que consultar nos puedes escribir directamente al formulario de contacto.
Saludos
Hola, gracias por la información, me ha sido muy útil.
Tengo un problema parecido al del de los 30 diplomas. Tengo un archivo de excel con filas que tengo que reemplazar en una plantilla de word, cosa que logré con tu macro. Actualmente pongo el id de la fila, boton, me genera un documento word con el contenido. El problema es que no necesito imprimirlas como acá, necesito es que cada nueva hoja me quede en el mismo documento. Acá viene el problema para mi: son 5.000 filas, así que realmente me serviría mucho tu ayuda porque incluso creando documento por documento, copiando y pegando en otro es mucho tiempo. Y lo peor, tengo que volverlo a hacer luego en unas semanas. Realmente te agradecería cualquier luz que me puedas dar.
Gracias.
Hola amigo, cómo estás ? Gracias por escribirnos!
En cuanto a tu consulta, con conbinar correspondencia realmente es muy fácil. Puedes hacerlo manual o crear una pequeña macro que te ayude a automatizar los pasos pero te reduce mucho el trabajo. Revisa el video en youtube que ahí mostramos los paso.
Por otro lado de este método hay mucha info en internet.
Cualquier cosa nos escribes directamente, en el blog el contacto.
Un Saludo
Publicar un comentario