Copiar las hojas de mi archivo excel a word con macros

Necsito una ayuda mi macro como ven se ejecuta de una manera excelente me copia desde un rango de celdas en la hoja activa a word y lo guarda de manera excelente pero esto solo ocurre para 1 hoja que tenga en mi excel, ahora el problema es que tengo 5 hojas con valores en el mismo rango. Lo que deseo hacer es copiar cada hoja del libro excel a word seria un documento word con 5 hojas que cada hoja representa a la del excel alguna idea de como lograrlo por favor.

Sub CopiaraWord()
Dim MiappWord As Object
Set MiappWord = CreateObject("Word.Application")
Range("A1:H40").Copy
With MiappWord
    .Documents.Add
    .Selection.PasteExcelTable False, False, False
    .ActiveDocument.SaveAs Filename:=ThisWorkbook.Path & "\miarchivo.docx"
    .Visible = True
End With
Application.CutCopyMode = False
Set MiappWord = Nothing
MsgBox "Todo listo"
End Sub

3 Respuestas

Respuesta
1
Respuesta
1

[Hola 

Valorar ++excelente para finalizar


Prueba con la siguiente macro 

Sub CopiaraWord()
'
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set l1 = ThisWorkbook
Set h1 = l1.Sheets.Add
    For Each h In Sheets
        If h.Name <> h1.Name Then
         u = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
        h.Range("A1:H40").Copy h1.Range("A" & u)
        u = u + 1
        End If
    Next h
    '
    Dim MiappWord As Object
    Set MiappWord = CreateObject("Word.Application")
        h1.Range("A1:H" & Rows.Count).Copy
        With MiappWord
            .documents.Add
            .Selection.PasteExcelTable False, False, False
            .ActiveDocument.SaveAs Filename:=ThisWorkbook.Path & "\miarchivo.docx"
            .Visible = True
        End With
        Application.CutCopyMode = False
        Set MiappWord = Nothing
    h1.Delete
    '
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    '
    MsgBox "Todo listo"
End Sub
Respuesta
1

[Hola

Si necesitas que cada hoja de Excel quede en una página de Word, intenta así:

Sub CopiaraWord()
Dim Hoja As Worksheet
Dim MiappWord As Object
Set MiappWord = CreateObject("Word.Application")
MiappWord.Documents.Add
For Each Hoja In Worksheets
    Hoja.Range("A1:H40").Copy
    With MiappWord
        .Selection.PasteExcelTable False, False, False
        .Selection.InsertNewPage
    End With
Next Hoja
With MiappWord
    '.ActiveDocument.SaveAs Filename:=ThisWorkbook.Path & "\miarchivo.docx"
    .Visible = True
End With
Application.CutCopyMode = False
Set MiappWord = Nothing
MsgBox "Todo listo"
End Sub

Ojo, no olvides que dependiendo del tamaño de fuente y el número de filas de tu Excel, cada hoja podría ocupar más de una página, pero en todo caso igual esta macro no permite que más de una hoja de Excel ocupen la misma página de Word.

Saludos]

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas