Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Envio de Datos de Excel a un Documento a Word

| 3 comentarios

Buenas tardes:

Muchas veces tenemos que actualizar datos que tenemos en un Documento Word como puede ser un resumen ejecutivo que contienen datos que provienen de un Excel, y que han sido utilizados para poder plasmar algunas cantidades numéricas y de análisis.

Es por ello que a través de una macro sé puede automatizar esta tarea repetitiva. Para el ejemplo a continuación ,debemos considerar lo siguiente

*Tener un Documento de Word ya creado que termine en .docx   .

Ejemplo: PasteTable.docx

*En ese documento, se crea un marcador etiquetando(seleccionando el rango) la ubicación en la que desea que sus datos de Excel se actualicen (vuelvan a copiar),ir a insertar y seleccionar marcador (se encuentra en vínculos) , se activará el cuadro de diálogo  y se debe indicar el nombre en este caso el marcador tendrá el nombre de DataTableHere que permitirá copiar (actualizar) el rango seleccionado del documento word PasteTable, luego el botón agregar.

Referencias word en Excel

(Para mayor visualización de la imagen, hacer click en la misma)

*También es necesario establecer una referencia a la biblioteca de objetos de Microsoft Word. Para ello, abra el Editor de Visual Basic en Excel y seleccione Referencias, se abre el cuadro de diálogo de referencia; desplácese hacia abajo hasta encontrar la entrada de Microsoft Word XX Object Library, donde XX es su versión de Word. Seleccione la casilla de verificación situada junto a la entrada.

Referencias word en Excel

(Para mayor visualización de la imagen, hacer click en la misma)

*Para este ejemplo se debe renombrar una hoja con el nombre "Revenue Table"

En el siguiente ejemplo se ejecutará la macro:

Sub Macro1()

'Paso 1: Declare las variables

Dim MyRange As Excel.Range

Dim wd As Word.Application

Dim wdDoc As Word.Document

Dim WdRange As Word.Range

 'Paso 2: Copie el rango que se ha definido podrá cambiar reiteradamente

Sheets(“Revenue Table”).Range(“B4:F8”).Copy

 'Paso 3: Busca y Abre el documento de Word de destino

Set wd = New Word.Application

Set wdDoc = wd.Documents.Open _

(ThisWorkbook.Path & “\” & “PasteTable.docx”)

wd.Visible = True

'Paso 4: Establecer el foco en el marcador de destino

Set WdRange = wdDoc.Bookmarks(“DataTableHere”).Range

'Paso 5: Eliminar la tabla antigua  y  pegar la nueva

On Error Resume Next

WdRange.Tables(1).Delete

WdRange.Paste ‘paste in the table

'Paso 6: Ajuste ancho de las columnas

WdRange.Tables(1).Columns.SetWidth _

(MyRange.Width / MyRange.Columns.Count), wdAdjustSameWidth

‘Paso 7: Vuelva a insertar el marcador (actualiza tabla)

wdDoc.Bookmarks.Add “DataTableHere”, WdRange

'Paso 8:limpieza de memoria

Set wd = Nothing

Set wdDoc = Nothing

Set WdRange = Nothing

End Sub

De esta manera podemos actualizar los datos de un word, ya que son enviado desde un libro de Excel.

Adjunto cuadro Excel de ejemplo y Documento Word .

Envio de Datos Excel a Word PasteTable

DENISSE QUILLAS FIESTAS

3 comentarios

  1. y para hacer al reves? Importar un archivo de Word en Excel como seria?

  2. Es muy bueno la ilustración que facilita preparar informes en un tiempo rápido

  3. Justo lo que necesito, tenia días rompiéndome la cabeza, saludos

Deja una respuesta

Los campos requeridos estan marcados con *.