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. Hola a todos, estoy intentando desde una hoja en excel pasar información hacia varios documentos word (No plantillas), necesitando que la msma se actualice al momento de introducir nuevo datos. He utilizado el pegado especial de word y me resulta, solo que son muchos documentos y en verdad, relacionar uno por uno me resulta muy tedioso.
    Les agredecería si pueden darme alguna idea sobre ello y que me facilte el trabajo.
    Saludos

  2. Hola buenas noches. He trabajado con un código por algunos días para migrar información de un archivo de Excel a una plantilla de Word. Todo va perfecto si el texto que exporto no hace parte del encabezado del archivo de Word. He intentado por todo lado pero nada. Veo que aquí tiene una línea para hacer algo parecido en el pié de página. No se como incluirlo en mi macro. Gracias de antemano.

    Sub ExportWord()
    '
    patharch = ThisWorkbook.Path & "\_Plantilla.dotx"
    '
    For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    objWord.Documents.Add Template:=patharch, NewTemplate:=False, DocumentType:=0
    '
    For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
    textobuscar = Cells(1, j)
    objWord.Selection.Move 6, -1
    objWord.Selection.Find.Execute FindText:=textobuscar
    '
    While objWord.Selection.Find.Found = True
    objWord.Selection.Text = Cells(i, j) 'texto a reemplazar
    objWord.Selection.Move 6, -1
    objWord.Selection.Find.Execute FindText:=textobuscar

    Wend

    While objWord.Selection.Find.Found = True
    objWord.Selection.Text = Cells(i, j) 'texto a reemplazar
    objWord.Selection.Move 6, -1
    objWord.Selection.Headers(wdHeaderFooterPrimary).Execute FindText:=textobuscar

    Wend

    '
    Next
    '
    MsgBox "¡Documento generado exitosamente!", vbInformation, «»
    objWord.Activate
    objWord.ActiveDocument.SaveAs "C:\Users\Asus-PC\Desktop\Resol\RES_" & Hoja6.Range("A3") & "_" & Hoja6.Range("W3") & ".docx"

    End

    Next
    End Sub

  3. hola me funciona el código pero sale descuadrado en el Excel me podrías apoyar como hago para que quede en bien en la hoja gracias

  4. Muy bueno su aporte, muchas gracias.
    Tengo un problema al aplicar la macro, el texto en Word queda vinculado al texto en Excel del que procede. Uso Excel 365.
    Gracias,

    Denis Rojas
    Perú

Página de comentarios 2 de 2
1 2

Deja una respuesta

Los campos requeridos estan marcados con *.