PROGRAMAR EN VBA MACROS PARA EXCEL: Como copiar varias tablas de Excel a Word

Como copiar varias tablas de Excel a Word





Anteriormente se mostró una macro que permitía exportar una tabla de Excel a Word, en este post voy a mostrar como exportar varias tablas de Excel a Word, es decir en este ejemplo existen varias tablas en la hoja de Excel que serán exportadas a Word, recomiendo descargar el ejemplo y mirar el vídeo para una compresión más detallada, también es importante que suscribas al blog y canal youtube,  recibirás en tu correo en forma GRATIS ejemplos de macros que puedes descargar y adaptar a tus necesidades.

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


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.


  


En forma GRATUITA descarga desde el link del final el ejemplo, verás un archivo comprimido que contiene dos archivos, un archivo de Word y otro de Excel con la macro, el archivo de Word se utiliza como plantilla, de esta manera sirve para futuras ejecuciones de la macro; el archivo comprimido se debe descomprimir en cualquier lugar de la PC con la condición que se encuentren juntos en la misma carpeta, si necesitas una macro que permita comprimir archivos desde excel haz click en el link.

En el ejemplo de macro que se presenta permite exportar varias tablas de Excel a Word, recorre todas las filas de un rango hasta la última fila con datos, determinando el rango de la tabla, la copia y pega en Word, luego se determina el rango de la próxima tabla, se copia la tabla y pega en Word y así sucesivamente hasta la última fila con datos; en el vídeo encontrarás una explicación más gráfica y detallada de la macro que permite exportar varias tablas de Excel a Word.

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.






Código que se inserta en un módulo




Sub ExportaTablasWord()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim objWord As Word.Application, wdDoc As Word.Document
On Error Resume Next
Set a = Sheets(ActiveSheet.Name)
nom = ActiveWorkbook.Name
pto = InStr(nom, ".")
nomarch = Left(nom, pto - 1)
ruta = ThisWorkbook.Path & "\" & nomarch & ".docx"
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"

pf = 1
uff = a.Range("A" & Rows.Count).End(xlUp).Row
n = 1

Do
uf = a.Range("A" & pf).End(xlDown).Row
pc = a.Range("A" & pf).Address
pwc = Mid(pc, InStr(pc, "$") + 1, InStr(2, pc, "$") - 2)

uf = uf
uc = a.Range("A" & pf).End(xlToRight).Address
wc = Mid(uc, InStr(uc, "$") + 1, InStr(2, uc, "$") - 2)

a.Range(pwc & pf & ":" & wc & uf).Copy

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

pf = uf + 3
n = n + 1
Loop While pf <= uff

wdDoc.SaveAs Filename:=rutainf, FileFormat:=wdFormatXMLDocument
'wdDoc.Close
MsgBox ("Las " & n - 1 & " tablas se exportaron 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