Excel Avanzado

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

Excel Avanzado
macro de excel a word

Copiar un contenido de Excel a Word

| 32 comentarios

El proceso de copiar contenido desde una hoja de cálculo de Excel a un documento de Word se puede simplificar mediante una macro. Veamos los siguientes pasos:

1.  Seleccionar en el Menú Herramientas >> Referencias la opción de MicrosoftWord

Macro2 300x202 Copiar un contenido de Excel a Word

La versión de la referencia será distinta en función de la versión de Office que este utilizando.

Para Office 2010 la referencia a seleccionar es Microsoft Word 14.0 Object Library

En el caso del Office 2013 la referencia a seleccionar es Microsoft Word 15.0 Object Library

macro7 300x243 Copiar un contenido de Excel a Word

2. Para emplear la macro para exportar datos de Excel a Word, se puede escribir el siguiente código en la hoja de cálculo que contiene la información a copiar, o en un módulo.

macro82 300x212 Copiar un contenido de Excel a Word

Debe tenerse cuidado con las comillas dobles que están al rededor de Word.Application, estas deben ser las normales no las inclinadas, se si empelan las inclinadas se producirá el error 424.

Sub Copiar_a_Word()

Dim WordApp As Object
Set WordApp = CreateObject("Word.Application")

Selection.Copy

With WordApp
'Con este codigo se abrira Word y se creara un documento nuevo
.Visible = True
.Activate
.Documents.Add
End With

WordApp.Selection.PasteSpecial link:=True
'Se pegara en el documento lo seleccionado en la hoja de calculo

WordApp.Selection.Sections(1).Footers(1).Range.Text = "Pie de Página"

Set WordApp = Nothing

End Sub

 

La macro indicada nos permitirá pasar datos de Excel a Word automáticamente.

3. Seleccionar la información (por lo general son tablas) que se desea copiar

macro para pasar de excel a word

4. Ahora, para ejecutar la macro, podemos insertar un botón de comando que la reproduzca; o hacerlo directamente desde la lista de macros en la ficha programador (Alt+F8):
macro5

5. Luego de seleccionar la macro a ejecutar, se crea un documento en Word con la información seleccionada

macro6 300x187 Copiar un contenido de Excel a Word

Como se podrá ver, la serie de pasos que comúnmente se realizan para el copiado de información se reduce a un solo paso.

Elaborado por: Arlette Olivera

32 comentarios

  1. MUY VALIOSO TU APORTE, NECESITO REALIZAR LO CONTRARIO PASAR DE WORD A EXCEL ME PODRIAS COLABORAR CON ESTO

  2. es muy útil para realizar tablas, por ejemplo, en vez de usar el propio word, ya que en excel se pueden realizar mayores calculos. etc

  3. Interesante, permite conocer mas sobre Excel

  4. Sencillo y practico! Muchas gracias!!! 😉

  5. Buenas,
    Me guié con tu ejemplo para crear mi propia macro, yo necesito pegar la tabla en un archivo de Word que tengo como machote (base), lo que pasa es que la macro solo pega al inicio del Word, mi pregunta es.. Como hago para que la macro se posicione en un lugar del word especifico???

    Sub Copiar_a_Word()

    Dim WordApp As Object
    Set WordApp = CreateObject("Word.Application")

    With WordApp
    'Con este codigo se abrira Word y se creara un documento nuevo
    .Visible = True

    .Documents.Open ("C:\Don Ricardo\Carta.docm")
    'este es el archivo donde yo tengo que copiar la tabla de excel
    .Activate
    End With

    Windows("Proformas.xlsm").Activate
    'este es el archivo de excel donde esta la tabla
    Sheets("Sheet2").Range("ttabla").Select
    Range("ttabla[#all]").Select
    Selection.Copy

    WordApp.Selection.PasteSpecial Link:=True, DataType:=wdPasteBitmap, Placement:= _
    wdInLine, DisplayAsIcon:=False
    'Se pegara en el documento lo seleccionado en la hoja de calculo

    Set WordApp = Nothing

    End Sub

    • Hola, te dejo el código que podría ayudarte, espero tus comentarios

      Sub tablaaword()
      patharch = ThisWorkbook.Path & "\NOMBRE DE ARCHIVO DE WORD"
      Set objWord = CreateObject("Word.Application")
      objWord.Visible = True
      objWord.documents.Add Template:=patharch, NewTemplate:=False, DocumentType:=0

      Hoja1.Range("A1:D6").Select
      Selection.Copy

      textobuscar = "[tabla_excel]"

      objWord.Selection.Move 6, -1 'moverse al principio del documento
      objWord.Selection.Find.Execute FindText:=textobuscar

      While objWord.Selection.Find.found = True 'reemplaza el texto, y busca si hay otro para reemplazarlo

      objWord.Selection.PasteExcelTable False, True, False

      objWord.Selection.Move 6, -1
      objWord.Selection.Find.Execute FindText:=textobuscar
      Wend

      objWord.Activate

      End Sub

      • Hola, copie el codigo sugerido pero me dice "object required" ya inclui el nombre de mi documento word y el de mi tabla.

        ------------------------
        Sub tablaaword()

        patharch = ThisWorkbook.Path & "\TEMPLATE COLOMBIA_DQC Rebate sin contrato de venta (Spanish).dotx"
        Set objWord = CreateObject("Word.Application")
        objWord.Visible = True
        objWord.Documents.Add Template:=patharch, NewTemplate:=False, DocumentType:=0

        Hoja1.Range("A1:D6").Select
        Selection.Copy

        textobuscar = "[Tabla No. 1]"

        objWord.Selection.Move 6, -1
        objWord.Selection.Find.Execute FindText:=textobuscar

        While objWord.Selection.Find.Found = True

        objWord.Selection.PasteExcelTable False, True, False

        objWord.Selection.Move 6, -1
        objWord.Selection.Find.Execute FindText:=textobuscar
        Wend

        objWord.Activate

        End Sub
        ---------------------------------

        ¿Alguna sugerencia?

        Gracias

  6. Buenas tardes:
    Me parece una manera muy buena de pasar algo de Excel a Word , muchas veces cuando copias se mueve y no cuadra bien, pero con esta función es mucho más práctico.

    Gracias!

  7. He probado a hacer lo que me indica para que una hoja de excel que tengo se me copie en word y no me funciona cuando le doy a la macro. ¿Alguien sabe si con officce 2007 y dando solo esos pasos de copiar el código es suficiente?
    Yo he seguido los pasos al pie de la letra, he copiado el código, he elegido la opción Microsoft Word 12.0 object library, y le he asignado la macro que se ha creado a un botón. Cuando le doy al botón me dice que falta un objeto. ¿Qué es lo que me falta?

    • Hola
      El código fue probado con Office 2007 (por eso aparece Microsoft 12.0 Object Library) , lo acabo de revisar con Office 2010 (con Microsoft 14.0 Object Library) y también funciona, recuerda que para ejecutarlo debes tener previamente seleccionado el contenido que deseas que se envíe a word, si aún asi no se puede copiar el contenido de Excel a Word, por favor sube el archivo donde estes probando a https://www.facebook.com/groups/744813545597355/ para poder revisarlo
      Saludos

  8. hola, sabes que introduzco el código que dejaste en el ejemplo y arroja un error que dice que se requiere un objeto, a que se puede deber?
    saludos!!

    • Hola María

      Lo mas se seguro es que es un tema con la librería añadida, en mi caso he probado con "Microsoft Office 14.0 Object Library" y funciona correctamente.

  9. Hola Arlette
    Gracias por la info que publicas en este tutorial. He copiado la macro tal cual sin embargo obtengo una pantalla que dice "Error de ejecución 424. Objeto requerido". Podrias indicarme a que se debe?

    Gracias

    • Son comillas dobles que están junto a Word.Application, estas deben ser las normales en lugar de las inclinadas

  10. Queria agregar que lo que me aparece es Microsoft Word Library 15
    Saludos

  11. Hola buenas tardes.
    Esta muy interansante el codigo.
    Pero tengo el mismo problema que Lesly .
    dice “Error de ejecución 424. Objeto requerido
    y en herramienta solo tengo: Microsoft Word Library 15

    Slds

    • Lo indicado se produce por las comillas dobles que se usan en Word.Application, estas deben ser las normales no las inclinadas

  12. Sr Fernando. Por favor quisiera guardar mi copia de word con su respectivo nombre que existe en la celda b7 en excel, que proviene .Pero no me ha funcionado, aqui le dejo mi macro:

    Mi correo:goldefresh.sff@gmail.com

    Gracias de antemano

    Sub Copiar_a_Word_inter()

    Range("a1:f64").Select
    '-------------------------------------------------------------
    Dim WordApp2013 As Object

    Set WordApp2013 = CreateObject("Word.Application.15")
    Selection.Copy

    With WordApp2013
    '‘Con este codigo se abrira Word y se creara un documento nuevo
    .Visible = True
    .Activate
    .documents.Add
    End With

    WordApp2013.Selection.PasteSpecial link:=True
    '‘Se pegara en el documento lo seleccionado en la hoja de calculo

    Set WordApp2013 = Nothing

    'Guardar
    ' no me sale guardar con su nombre !

    End Sub

  13. Hola amigos, mi nombre Eleazar desde Valencia, Venezuela.

    Hola, ¿Como inserto esta funcion: =if(A1=1;A1*B1;B1) en la celda C1 de una tabla de solo 3 columnas y una fila?
    Lo he intentado y siempre dice "error de sintaxis"
    Gracias anticipadas por compartir tus conocimientos, si puedes responde a mi correo, por favor

  14. Buena macro, las he probado y funcionan de maravilla.

    Lo que no logro es cambiar el encabezado y pie de pagina en word, para que con macro de excel sustitulla en una plantilla de word, tome el dato de la celda A1 y lo coloque como pie de pagina

    Agradecería tu ayuda.

    • Gracias por tu consulta, en el ejemplo se agregó la línea:

      WordApp.Selection.Sections(1).Footers(1).Range.Text = “Pie de Página”

      con la cual se puede logar lo indicado.

      Saludos

      • BNAS NOCHES SEÑOR FERNANDO, SOY NUEVO EN E TEMA DE MACROS QUISERA SABER A CUAL EJEMPLO AGREGO ESA LINEA PARA Q ME CAMBIEN EL ENCABEZADO Y PIE DE PAGINA EN WORD

  15. Buenos Días!
    Hice mi macro en una maquina con Office 2010 y activo la referencia Microsoft Word 14.0 Object Library, pero al abrir el archivo en Office 2013 modificar el archivo y guardarlo vuelvo y lo abro en Office 2010 y me dice que falta la referencia Microsoft Word 15.0 Object Library. Es decir, si lo hago de 2010 a 2013 funciona, pero de 2013 para abrirlo en 2010 saca dicho error. Como puedo solucionar esto? requiero trabajar el archivo en varias maquinas y no sabre que tipo de Office tiene. Requiero que esto me funcione en cualquier Office.
    Gracias!

  16. buena tarde
    muy buenos los aportes de la pagina, necesito copiar la información de excel en word pero no como hipervinculo, ya que cuando borro los datos de la tabla de excel, se borran de la tabla de word, y tambien necesito ingresar un texto desde una tabla de excel, pero como un texto plano sin formato ni celdas

  17. Espectacular, mas como le hago para mantener el formato del destino, al ejecutar la macro no respeta los márgenes de la hoja en MSword

  18. Buenas tardes,
    Muy buenos los aportes, me gustaría saber si hay alguna manera de pegar una imagen en el encabezado de sólo la primera página, espero que me puedan ayudar,
    Saludos

  19. HOLA, BUENAS TARDES.
    ME PARECE MUY INTERESANTE LA MACRO, PERO NECESITO PASAR DATOS ESPECÍFICOS DE UNA HOJA DE EXCEL A UN SITIO ESPECÍFICO EN UN DOCUMENTO DE WORD.
    QUE MACRO ME AYUDARÍA PARA ESE PROYECTO

  20. buenos días, necesito pasar de un archivo de excel a un archivo de word, incrustado como objeto en la misma tabla de excel, como pudiera hacer, el rango a copiar el de la celda A4:N452.

    Agradezco la colaboración

Página de comentarios 1 de 2
1 2

Deja una respuesta

Los campos requeridos estan marcados con *.