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:=&#34;Excel.Sheet.8&#34;, Filename:=&#34;&#092;&#092;...&#092;Archivo.xls&#34;, 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(&#34;Hoja_Inicio&#34;).Select 'Bucle para ir insertando todas las hojas del documento excelExcel.Sheets(&#34;DATOS GENERALES&#34;).Select Dim Contador As IntegerContador = Excel.Sheets.Count Dim Indice As IntegerIndice = 1 Do While Contador &#62; 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:=&#34;Excel.Sheet.8&#34;, Filename:=&#34;&#092;&#092;....&#092;doc.xls&#34;, 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(&#34;excel.application&#34;)     Excel.Workbooks.Open &#34;&#092;&#092;...&#092;documento.xls&#34;      Excel.Workbooks(1).Activate                  If Err Then            MsgBox Err.Number, Err.Description, &#34;Error al abrir .&#34;            Excel.Close        End If        Excel.Visible = True                'Selecciono una hoja    Excel.Sheets(Indice).Select          If Contador &#60;&#62; 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:=&#34;Excel.Sheet.8&#34;, Filename:=&#34;&#092;&#092;...&#092;documento.xls&#34;, 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

[0] Índice de Mensajes

Ir a la versión completa