Este sería un método o una forma de combinar "correspondencia" de excel con word.
Esta macro crea los documentos de word pero no utiliza propiamente la correspondencia de word, lo que hace, es tomar tu documento de word y crear un documento por cada nombre que tengas en tu lista de excel.
Sigue los siguientes pasos:
1. Crear tu lista en excel, de la siguiente forma:
Lo importante es que los encabezados pongas una referencia que es la que vamos a buscar en word, yo puse [reemp_nombre] [reemp_telefono] [reemp_estado].
2. Ahora crea tu documento word, de la siguiente forma:
En tu documento, ahora vas a poner los encabezados de excel, en el lugar que desees.
3. Ya que tienes tu documento word terminado, guárdalo pero como plantilla de word y guárdala en la misma carpeta donde tienes tu archivo de excel.
En este ejemplo yo guardé mi archivo con el nombre de "plantilla1"
4. En tu archivo de excel pon la siguiente macro, en esta línea de la macro debes poner el nombre de tu plantilla word, recuerda que en mi ejemplo guardé la plantilla como "plantilla1":
patharch = ThisWorkbook.Path & "\plantilla1.dotx"
Sub CorrespondenciaConWord()
'Por.Dante Amor
'
patharch = ThisWorkbook.Path & "\plantilla1.dotx"
'
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.documents.Add Template:=patharch, NewTemplate:=False, DocumentType:=0
'
For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
textobuscar = Cells(1, j)
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=textobuscar
'
While objWord.Selection.Find.found = True
objWord.Selection.Text = Cells(i, j) 'texto a reemplazar
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=textobuscar
Wend
'
Next
'
ObjWord. Activate
ObjWord. ActiveDocument.SaveAs Cells(i, "A").Value
objWord. ActiveDocument. Close
objWord. Quit
Next
End Sub
5. Sigue las Instrucciones para un botón y ejecutar la macro
- Abre tu libro de Excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- En el menú elige Insertar / Módulo
- En el panel del lado derecho copia la macro
- Ahora para crear un botón, puedes hacer lo siguiente:
- Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
- Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
- Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
- Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: CorrespondenciaConWord
- Aceptar.
- Para ejecutarla dale click a la imagen.
Te anexo mi archivo de word y mi archivo de excel con la macro:
https://www.dropbox.com/s/mnimgjlkmyy66i7/plantilla1.dotx?dl=0
https://www.dropbox.com/s/abfjz0wz8wg1skb/correspondencia%20con%20word.xlsm?dl=0
Saludos. Dante Amor
Hola, tengo una macro en Excel para remplazar en word, funciona pero no he podido generar la opción que se guarde como PDF... gracias - Felipe Urueña Varón
Hola Dante. Muchas gracias por su aporte, muy bueno y sencillo. Estoy ajustando la macro para unos formatos que debo automatizar y ahí voy. Tengo un problemita aún: Dentro de los bloques de texto que se deben cambiar hay dos que están en el encabezado del formato de Word, pero no he logrado que la macro lo haga ahí. Gracias de antemano. - ca
No he investigado para hacer los cambios en el encabezado del documento word. Voy a investigar y si encuentro algo, lo posteo en la respuestas de esta misma pregunta. - Dante Amor
Pueden encontrar el código para cambiar en el encabezado en el siguiente enlace: Macro que exporta datos de excel a word - Dante Amor