Programación General > VBA
Exportar Hojas De Excel A Word
(1/1)
Kaisser:
Hola a todos.
Tengo un documento en excel compuesto por más de 1 hoja y quiero exportar dichas hojas a un documento de word.
Bueno, haciendolo a mano y grabando todo en una macro tengo la solución a lo que quiero, pero........ el caso es que sólo me importa la primera hoja del documento excel. <_<
¿Cómo puedo exportar todas?
Otra cosilla, luego tengo que pasar todo a PDF, que es más fácil, pasar excel a pdf y word a pdf y unirlos ordenadamente en un gran pdf o pasar todo a word y luego a pdf. (Pregunta enredada, pero lo comento por si es más fácil).
Un saludo y gracias.
Kaisser:
Vaya, tengo un problema.
La macro de Word para importar el Excel tiene este código:
--- Código: Text --- Excel.Application.Selection.InlineShapes.AddOLEObject ClassType:="Excel.Sheet.8", Filename:="\\...\Archivo.xls", LinkToFile:=False, DisplayAsIcon:=False
El caso es que eso se hace desde Word, con Excel cerrado y claro, yo había pensado en un bucle para recorrer las hojas de word e ir exportandolas y claro, si tengo que tener Excel cerrado........ mal asunto :(
A ver si alguien me puede ayudar.
Salu2
Kaisser:
Hola, pues parece que ya lo he resuelto.
Aquí pongo todo, por si a alguien le es útil, no es gran cosa, pero bueno:
--- Código: Text --- '========================='EXPORTAR DE EXCEL A WORD.'========================= On Error Resume Next'Nos situamos en el documento word en la posición que queremos que vaya la hoja de excel con un bookmarappWD.Selection.Application.ActiveDocument.Bookmarks("Hoja_Inicio").Select 'Bucle para ir insertando todas las hojas del documento excelExcel.Sheets("DATOS GENERALES").Select Dim Contador As IntegerContador = Excel.Sheets.Count Dim Indice As IntegerIndice = 1 Do While Contador > 0 'Selecciono una hoja Excel.Sheets(Indice).Select 'Cierro excel Excel.Application.DisplayAlerts = False Excel.Application.SaveWorkspace Excel.Application.Quit Excel.Application.DisplayAlerts = True 'Importo la hoja appWD.Application.Selection.InlineShapes.AddOLEObject ClassType:="Excel.Sheet.8", Filename:="\\....\doc.xls", LinkToFile:=False, DisplayAsIcon:=False 'Puede pedir autorización para usar macros, es cuestión de bajar la seguridad. 'Abro de nuevo excel y borro la hoja que he exportado On Local Error Resume Next Set Excel = CreateObject("excel.application") Excel.Workbooks.Open "\\...\documento.xls" Excel.Workbooks(1).Activate If Err Then MsgBox Err.Number, Err.Description, "Error al abrir ." Excel.Close End If Excel.Visible = True 'Selecciono una hoja Excel.Sheets(Indice).Select If Contador <> 1 Then 'Preguntar antes de abrir Excel, por que sino hay que borrar es tonteria abrir Excel.Application.DisplayAlerts = False Excel.ActiveWindow.SelectedSheets.Delete Excel.Application.DisplayAlerts = True End If ' Excel.Visible = True 'Actualizo indices ' Indice = Indice + 1 Contador = Contador - 1Loop 'Excel.Application.Selection.InlineShapes.AddOLEObject ClassType:="Excel.Sheet.8", Filename:="\\...\documento.xls", LinkToFile:=False, DisplayAsIcon:=False If Error Then ' MsgBox Error 'HAY ALGÚN ERROR, PERO EL TEMA FUNCIONA :P End If 'Cerramos las aplicaciones de Word y Excel. appWD.Quit Excel.Application.Quit
Es una autentica chapuza, por que abro varias veces Excel y lo cierro, pero no va mal del todo :kicking:
Un saludo.
Navegación
Ir a la versión completa