Como Enviar datos de Excel a Word

En este tutorial, te mostraré cómo usar Excel y Word junto con VBA para automatizar la generación de documentos. Esto es particularmente útil si trabajas con grandes volúmenes de datos y necesitas crear varios documentos de forma rápida.


Parte 1: Preparación de los Archivos en Excel y Word

Preparar la Tabla en Excel

  • Abre un nuevo archivo de Excel y crea una tabla con los datos que deseas transferir a Word, por ejemplo: Nombre, Fecha, Edad, Número de Orden, etc.

  • Formato de tabla: Da formato a la tabla desde la pestaña Insertar > Tabla y personaliza con un color.

Crear la Plantilla en Word

  • Abre un nuevo documento en Word que servirá como plantilla.
  • Dentro de la plantilla, coloca los campos que deseas reemplazar, como [NOMBRE], [FECHA], [EDAD]. Resalta estos marcadores para facilitar su identificación y diferenciación.

Guardar Ambos Documentos

  • Guarda el archivo de Excel con un nombre descriptivo, por ejemplo, Tabla de Alumnos.

  • Guarda la plantilla en Word con el nombre Diploma_Plantilla en la misma carpeta para facilitar el acceso desde la macro de Excel.


Parte 2: Configurar los Botones y Controles en Excel

Insertar Botones en Excel

  • Ve a la pestaña Insertar, selecciona Formas, y elige una forma rectangular para crear botones de acción.
  • Etiqueta los botones como Reporte de Selección y Reporte Completo.

Añadir un Control de Desplazamiento

  • Desde Insertar, selecciona Control de Desplazamiento para poder navegar entre los registros de la tabla.

  • Configurar el control: Haz clic derecho sobre el control de desplazamiento, selecciona Formato de Control y ajusta los valores mínimo y máximo en función del número de registros.

  • Guarda el documento como Datos de Alumnos en una carpeta que puedas identificar, por ejemplo, una llamada Enviar Datos.

Vincular el Control de Desplazamiento a la Tabla

  • Configura el control para vincularse con una celda específica en la tabla. Este control permitirá desplazarse por los registros de la tabla y seleccionar el registro deseado para el reporte.


Parte 3: Crear y Configurar la Macro en VBA

Abrir el Editor de VBA

  • Haz clic derecho en Hoja1 > Ver código, y selecciona Insertar Módulo para agregar un módulo nuevo.

Escribir el Código para Controlar Word desde Excel

  • Dentro del módulo, define una variable de objeto para controlar Word:

Sub Reporte_Cliente()

Set ObjWord = CreateObject(«Word.Application»)

End Sub

Abrir la Plantilla en Word desde Excel

  • Usa el siguiente código para abrir el documento en Word usando la ruta de la plantilla guardada:

Sub Reporte_Cliente()

RutaPlantilla = «C:\Users\Jamit\Desktop\Enviar Datos\Diploma Plantilla.docx»

Set ObjWord = CreateObject(«Word.Application»)

ObjWord.Documents.Add Template:=RutaPlantilla, NewTemplate:=False, DocumentType:=0

End Sub

Hacer Visible la Aplicación de Word

Añade el siguiente código para hacer que Word sea visible al usuario:

objWord.Visible = True

Parte 4: Configuración de los Marcadores de Reemplazo en Word

Insertar Marcadores de Reemplazo

En Word, ve a Inicio > Reemplazar, y escribe los campos a reemplazar como [NOMBRE] o [EDAD] en el campo de Buscar. Asígnales un valor temporal que se reemplazará desde Excel.

Programar el Reemplazo Automático en VBA

Define en VBA el código para reemplazar automáticamente los campos en Word desde Excel, buscando y reemplazando cada marcador con los datos correspondientes de la tabla.





Busqueda = Hoja2.Range(«D3»).Value
Remplazar = Hoja2.Range(«C3»).Value

With ObjWord.Selection.Find
.Text = Busqueda
.Replacement.Text = Remplazar
.Execute Replace:=2
End With

ObjWord.Visible = True
ObjWord.Activate

Guardar y Cerrar el Documento Word

Guarda el documento con un nuevo nombre específico para cada registro (como el nombre del alumno) y luego ciérralo.





‘Guardar Documento Word

RutaGuardar = «C:\Users\Jamit\Desktop\Enviar Datos\Prueba.docx»
ObjWord.ActiveDocument.SaveAs2 Filename:=RutaGuardar, FileFormat:=wdFormantDocumentDefault
MsgBox «Documento Guardado»

Liberación de Recursos y Manejo de Errores:

  • Para evitar problemas con procesos en segundo plano, se cierra explícitamente el documento de Word y se libera la memoria asignada.
  • Si quedan instancias de Word en segundo plano, se eliminan desde el administrador de tareas.

‘Liberar Memoria y Cerrar el Word

ObjWord.ActiveDocument.Close SaveChanges = False
ObjWord.Quit
Set ObjWord = Nothing

Adaptación para Multiples Registros:

Para generar múltiples documentos de una vez, puedes usar un bucle para aplicar este proceso a todos los registros en Excel, con lo cual se automatiza aún más el flujo y se evita hacerlo manualmente uno por uno.

CONCLUSIÓN

Este proceso permite reemplazar dinámicamente valores en plantillas de Word, guardar los documentos con nombres únicos, y manejar errores comunes, como procesos en segundo plano o nombres duplicados.

Ventajas del Enfoque:

  • Ahorro de tiempo: Automatiza tareas repetitivas como la personalización y el guardado de documentos.
  • Escalabilidad: Permite procesar grandes cantidades de datos en Excel y generar múltiples documentos en una sola ejecución.
  • Evita conflictos: Incluye manejo de errores y procesos en segundo plano para garantizar que los documentos se cierren correctamente.

Puntos a Considerar:

  • Asegúrate de que las claves de búsqueda en la plantilla coincidan exactamente con las definidas en el código.
  • Siempre prueba con un conjunto reducido de datos antes de ejecutar el script con todos los registros para evitar errores inesperados.
  • Mantén una copia de seguridad de los archivos originales por si necesitas revertir cambios.

Macros para Casos Reales

  1. Buscador Potente en VBA
  2. Ordenar Datos automáticamente
  3. Macro para eliminar tíldes, acentos y caracteres especiales
  4. Actualizar Tabla Dinámica Automáticamente
  5. Evitar Parpadeo en ejecución de Macro (Próximo)
  6. Enviar Datos de Excel A Word
  7. Eliminar celdas vacías de un Rango (Próximo)
  8. Filtros Dinámicos (Próximo)
  9. Hacer Hablar a Excel (Próximo)
  10. Protegiendo el código de tus Macros (Próximo)
  11. Insertar Link a Etiqueta en Formulario VBA (Próximo)

Related Articles

Responses

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

  1. Felicidades… Un muy buen trbajo, como siempre. Me gustaria, si es posible que ampliaras si sería posible incluir y vincular, desde un enlace en excel y que aparezca foto en word. Solo consigo que aparezca el enlace pero ni tan siquiera con el vinculo. Gracis