Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como copiar tabla vinculada de Excel a Word


.

En este post te presento un ejemplo de macro de VBA que permite copiar una tabla vinculada de Excel a Word, anteriormente habíamos visto como copiar una tabla de Excel a Word, pero insertándose como una imagen en Word, en este ejemplo la tabla se copia, pero como tabla vinculada, es decir que los cambios que se realicen en la tabla de Excel se verán reflejados en la tabla de Word al actualizar el vínculo con un click; este ejemplo es útil cuando se trabaja con tablas de datos que cambian constantemente, pero el informe de Word es estándar, es decir es la misma plantilla de Word donde varían los datos.

Otros post relacionados con macros que permiten manejar Word desde Excel:

Como crear un archivo de Word con Excel
Como abrir un archivo de Word con Excel
Como conectar Excel con Word crear archivo e insertar texto en Word
Como dar formato a texto de Word desde Excel 
Como abrir modificar e imprimir archivo de Word con macro desde Excel
Como modificar una plantilla de Word con macro de Excel
Como rellenar pagare con datos de Excel conectando con Word
Como crear cartas en Word con clientes listados en Excel
Como copiar tablas o cuadros de Word a Excel
Como exportar tabla de Excel a Word
Como exportar varias tablas de Excel a Word
Como copiar tabla vinculada de Excel a Word

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

  
El ejemplo se descarga desde el link del final en forma gratuita, te recomiendo suscribas al blog, puedes ingresar tu mail de la casilla del lado derecho al principio, con lo cual recibirás en tu mail las publicaciones que se vayan realizando, no te preocupes no debes pagar nada, es gratis, así mismo tenemos un canal de You Tube donde se exponen las explicaciones en forma más detallada y gráfica por lo que te sugiero suscribas al mismo.

Al descargar el ejemplo se observa que hay un archivo comprimido, al descomprimirlo encontrarás dos archivos uno de Word, que es la plantilla con la que trabaja la macro y otro de Excel que es donde está la macro; al ingresar en el archivo de Excel observaras un botón a la derecha de donde se ejecuta la macro y en las celdas una tabla con varios números.

El objeto del ejemplo de macro denominado como copiar una tabla vinculada de Excel a Word, es copiar la tabla que se encuentra en Excel en el documento de Word, que se usa como plantilla luego se cierra sin modificarse para futuras ejecuciones de la macro, la macro crea un archivo de Word donde se pega la tabla vinculada de Excel; al quedar vinculada y no como imagen, tiene la particularidad que al modificar los datos en Excel se modifican en la tabla de Word automáticamente luego de actualizar el vínculo en Word.

La codificación del ejemplo se encuentra debajo de estos párrafos, cuando la macro crea el nuevo archivo le otorga el mismo nombre que el archivo de la macro con el aditamento al final de la fecha actual obtenida del sistema, en la proxima muestro como copiar varias tablas vinculadas de Excel a Word en vez de una sola como en este caso.

Suscribe a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlasbuscar en listbox mientras escribes en textboxordenar hojas libro excel por su nombreconectar Excel con Access y muchos ejemplos más.


if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}

Código que se inserta en un módulo
Sub ExportaTablaWord()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim objWord As Word.Application, wdDoc As Word.Document
On Error Resume Next
Set a = Sheets(ActiveSheet.Name)
a.Range(«A1:E11»).Copy
nom = ActiveWorkbook.Name
pto = InStr(nom, «.»)
nomarch = Left(nom, pto – 1)
ruta = ThisWorkbook.Path & «» & nomarch & «.docx»
uf = a.Range(«A» & Rows.Count).End(xlUp).Row
Set objWord = CreateObject(«Word.Application»)
objWord.DisplayAlerts = wdAlertsNone
objWord.Visible = True

Set wdDoc = objWord.Documents.Open(ruta)
nomfic = nomarch & » » & Format(Date, «dd-mm-yyyy»)
rutainf = ThisWorkbook.Path & «» & nomfic & «.docx»

ts = «[Campo_Tabla]»
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=ts
While objWord.Selection.Find.Found = True
objWord.Selection.PasteExcelTable True, True, False
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute FindText:=ts
Wend

wdDoc.SaveAs Filename:=rutainf, FileFormat:=wdFormatXMLDocument
‘wdDoc.Close
MsgBox («La tabla se exportó con éxito»), vbInformation, «AVISO»
‘wdDoc.Quit
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends