Foros del Web » Soporte técnico » Ofimática »

excell to word???

Estas en el tema de excell to word??? en el foro de Ofimática en Foros del Web. Hola tengo poca idea de VB y quisiera hacer una pequeña aplicación para poder pasar datos desde unas celdas en concreto a un archivo word..... ...
  #1 (permalink)  
Antiguo 18/09/2007, 04:32
 
Fecha de Ingreso: septiembre-2007
Mensajes: 2
Antigüedad: 16 años, 7 meses
Puntos: 0
excell to word???

Hola tengo poca idea de VB y quisiera hacer una pequeña aplicación para poder pasar datos desde unas celdas en concreto a un archivo word..... podriais echarme una manilla.........

Última edición por sainc; 18/09/2007 a las 05:21
  #2 (permalink)  
Antiguo 18/09/2007, 10:48
 
Fecha de Ingreso: febrero-2007
Mensajes: 450
Antigüedad: 17 años, 2 meses
Puntos: 3
Re: excell to word???

El maravilloso mundo de "Visual Basic for Aplications" y su maravillosa integración con Microsoft Office... desde luego, pocos tutoriales en la red no tienes y la pregunta muy concreta no es...

Bueno, tendrás que hacer en VB las referencias a Microsoft Word y Microsoft Excel... crear los objetos correspondientes a las aplicaciones, documento de Word, libro de Excel y la hoja (o hojas).

Y empezar a leer dicha hoja mientras la escribes en el documento.

Puede serte util ayudarte con Macros desde el Office.

Saludos.
  #3 (permalink)  
Antiguo 19/09/2007, 01:05
 
Fecha de Ingreso: septiembre-2007
Mensajes: 2
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: excell to word???

Bueno, replanteo la pregunta, hago una serie de modificaciones desde excel a una serie de datos. Una vez, hecho la purga, paso los datos a una matriz en concreto. Y aquí viene mi problema, quiero coger el contenido de esa matriz y pasarla a word. No tendría problemas en pasar la matriz si, al menos, supiera pasar una celda.........
Bueno gracias por las respuestas
  #4 (permalink)  
Antiguo 19/09/2007, 11:16
 
Fecha de Ingreso: febrero-2007
Mensajes: 450
Antigüedad: 17 años, 2 meses
Puntos: 3
Re: excell to word???

Pero entonces en que paso te encuentras ?

Ya tienes en VB una matriz con el contenido de las celdas de Excel, no ?
  #5 (permalink)  
Antiguo 19/09/2007, 12:45
Avatar de abrahamvj  
Fecha de Ingreso: julio-2006
Ubicación: Lima, Peru
Mensajes: 708
Antigüedad: 17 años, 9 meses
Puntos: 18
Re: excell to word???

Un ejemplo, eso si, si no tienes nocion de VBA, pues no si si podras entender:

Sub wordappli()
Dim apliword As Object
Set apliword = CreateObject("word.application")
With apliword
.documents.Add
.Visible = True
Worksheets("hoja2").[a1:a6].Copy
.Selection.typeparagraph
.Selection.pasteexceltable linkedtoexcel:=False, wordformatting:=False, RTF:=False
.activedocument.SaveAs ("c:\transferencia.doc")

End With
apliword.Quit
End Sub

Abraham
  #6 (permalink)  
Antiguo 23/06/2008, 17:12
 
Fecha de Ingreso: junio-2008
Mensajes: 8
Antigüedad: 15 años, 10 meses
Puntos: 0
Pregunta Respuesta: excell to word???

Hola!


La información anterior me fué de muchísima ayuda. Sin embargo, quisiera sabersi existe alguna manera en la que pueda copiar una tabla de excel y pegarla en word como una imagen (metarchivo mejorado)? Claro, a través de una macro.

Muchas gracias.
  #7 (permalink)  
Antiguo 24/06/2008, 11:08
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: excell to word???

No sé si es a esto a lo que te refieres pero puedes hacer así:
Código:
Dim wordApp As Object
Dim wordDoc As Object
Set wordApp = CreateObject("Word.Application")
Set wordDoc = wordApp.Documents.Add
'Aquí debes especificar el rango a copiar
Worksheets("Hoja1").Range("A1:B6").Select
Application.Selection.Copy
wordApp.Visible = True
wordApp.Selection.PasteExcelTable False, False, False
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 26/06/2008, 03:21
 
Fecha de Ingreso: febrero-2007
Mensajes: 450
Antigüedad: 17 años, 2 meses
Puntos: 3
Respuesta: excell to word???

Has probado a darle a grabar macro y hacerlo de forma manual para luego recuperar el código... ?
  #9 (permalink)  
Antiguo 28/06/2008, 09:49
Avatar de ArtemioRP  
Fecha de Ingreso: septiembre-2006
Mensajes: 13
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: excell to word???

Prueba lo siguiente;

En Excel selecciona la parte que deseas pegar en Word

En Word, sigue los pasos: Edición/Pegado Especial/Imagen

Saludos
  #10 (permalink)  
Antiguo 07/07/2008, 13:26
 
Fecha de Ingreso: junio-2008
Mensajes: 8
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: excell to word???

Hola David!

Pues si me sirvió para pegarlo pero el problema es que no me lo pega como una imagen sino como una tabla, y la tabla que tengo en excel es muy grande y al pegarla en word me sales muchísimas hojas, por esa razón es que necesito pegarma en word como una imagen :(, lo quiero hacer con una macro pues es un proceso que tengo que realizar cotidianamente.

Cuando ejecuto el código me dice que "Se produjo un error '424' en tiempo de ejecución Se requiere objeto" y vienen tres opciones una de ellas es depurar, ésta es la opción que le doy pero aún así no lo pega como imagen, qué hago??????????

Gracias
  #11 (permalink)  
Antiguo 07/07/2008, 13:33
 
Fecha de Ingreso: junio-2008
Mensajes: 8
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: excell to word???

Ya me salió!!!!!!!!!!!!!!!!!

Yuju!!!!!!!!!!

Lo logré con el siguiente código

Sub wordappli()
Dim apliword As Object
Set apliword = CreateObject("word.application")

Dim wordApp As Object
Dim wordDoc As Object
Set wordApp = CreateObject("Word.Application")
Set wordDoc = wordApp.documents.Add
'Aquí debes especificar el rango a copiar
Worksheets("julio").Range("cat").Select
Application.Selection.Copy
wordApp.Visible = True
wordApp.Selection.PasteSpecial Link:=False, DataType:=wdPasteOLEObject, Placement:=wdInLine, DisplayAsIcon:=False

apliword.Quit
End Sub

Mil gracias!!!!!!!!
  #12 (permalink)  
Antiguo 07/07/2008, 13:48
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: excell to word???

Me alegra que lo hayas logrado.
Cualquier otra duda, estamos por aquí.

Saludos
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #13 (permalink)  
Antiguo 07/07/2008, 16:17
 
Fecha de Ingreso: junio-2008
Mensajes: 8
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: excell to word???

Pues si tengo otra duda: son varios los rangos que tengo que pegar en el documento de word, los rangos están en diferentes hojas de un libro de excel. Habrá algún código con el que pueda replicar la copia para la misma macro?

Saludos!!!!!!!!
  #14 (permalink)  
Antiguo 07/07/2008, 16:22
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: excell to word???

Cita:
Iniciado por priska Ver Mensaje
Pues si tengo otra duda: son varios los rangos que tengo que pegar en el documento de word, los rangos están en diferentes hojas de un libro de excel. Habrá algún código con el que pueda replicar la copia para la misma macro?

Saludos!!!!!!!!
Lo siento, pero no entendí tu pregunta. ¿Quieres copiar los rangos de las diferentes hojas?. Simplemente cambia el Range por el rango que quieres copiar. Si no es así, ¿podrías explicarnos mejor?...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #15 (permalink)  
Antiguo 07/07/2008, 17:17
 
Fecha de Ingreso: junio-2008
Mensajes: 8
Antigüedad: 15 años, 10 meses
Puntos: 0
De acuerdo Respuesta: excell to word???

No, lo que quiero es ejecutar la macro con diferentes rangos para que me los pegue en el mismo documento de word. Es decir, quiero incluir varios rangos a la vez en la misma macro.

Dim wordApp As Object
Dim wordDoc As Object
Set wordApp = CreateObject("Word.Application")
Set wordDoc = wordApp.documents.Add

Worksheets("Cat1").Range("cat1").Select
Worksheets("Cat2").Range("cat2").Select
Worksheets("Cat3").Range("cat3").Select

Application.Selection.Copy
wordApp.Visible = True
wordApp.Selection.PasteSpecial Link:=False, DataType:=wdPasteOLEObject, Placement:=wdInLine, DisplayAsIcon:=False

Ya intenté ponerlo así pero no lo ejecuta supongo que habrá algún código para replicar la misma operación con diferentes rangos, o algo así?

Gracias Sr. David!
  #16 (permalink)  
Antiguo 08/07/2008, 14:34
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: excell to word???

Puedes hacerlo así:
Código:
Dim wordApp As Object
Dim wordDoc As Object
Set wordApp = CreateObject("Word.Application")
Set wordDoc = wordApp.Documents.Add

wordApp.Visible = True

WordPaste wordApp, Worksheets("Cat1").Range("cat1")
WordPaste wordApp, Worksheets("Cat2").Range("cat2")
WordPaste wordApp, Worksheets("Cat3").Range("cat3")
Código:
Sub WordPaste(WordObject As Object, myRange As Range)
myRange.Select
Application.Selection.Copy
WordObject.Selection.PasteSpecial Link:=False, DataType:=wdPasteOLEObject, Placement:=wdInLine, DisplayAsIcon:=False
End Sub
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #17 (permalink)  
Antiguo 15/07/2008, 10:05
 
Fecha de Ingreso: junio-2008
Mensajes: 8
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: excell to word???

Hola David!

Soy una latosa de lo peor!! Pero el código que me hiciste favor de pasar no he podido ejecutarlo, se queda pasmado..... no hace nada!!

Me ayudas?

Gracias!


Cita:
Iniciado por David el Grande Ver Mensaje
Puedes hacerlo así:
Código:
Dim wordApp As Object
Dim wordDoc As Object
Set wordApp = CreateObject("Word.Application")
Set wordDoc = wordApp.Documents.Add

wordApp.Visible = True

WordPaste wordApp, Worksheets("Cat1").Range("cat1")
WordPaste wordApp, Worksheets("Cat2").Range("cat2")
WordPaste wordApp, Worksheets("Cat3").Range("cat3")
Código:
Sub WordPaste(WordObject As Object, myRange As Range)
myRange.Select
Application.Selection.Copy
WordObject.Selection.PasteSpecial Link:=False, DataType:=wdPasteOLEObject, Placement:=wdInLine, DisplayAsIcon:=False
End Sub
  #18 (permalink)  
Antiguo 15/07/2008, 10:09
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: excell to word???

Es que aquí estás poniendo mal:
Código:
WordPaste wordApp, Worksheets("Cat1").Range("cat1")
WordPaste wordApp, Worksheets("Cat2").Range("cat2")
WordPaste wordApp, Worksheets("Cat3").Range("cat3")
Donde te marqué en rojo debes coloar el rango de celdas a copiar...

EDITO: En realidad está correcto si son tablas, pero yo lo he copiado usando tablas con esos nombres y funciona perfectamente, puedes intentar ejecutarlo paso a paso para ver qué sucede.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #19 (permalink)  
Antiguo 07/08/2008, 09:51
 
Fecha de Ingreso: junio-2008
Mensajes: 8
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: excell to word???

Hola David,

He estado intentando ejecutar el siguiente código

Sub wordappli()
Dim apliword As Object
Set apliword = CreateObject("word.application")

Dim wordApp As Object
Dim wordDoc As Object
Set wordApp = CreateObject("Word.Application")
Set wordDoc = wordApp.documents.Add

wordApp.Visible = True

WordPaste wordApp, Worksheets("Cat1").Range("cat1")
WordPaste wordApp, Worksheets("Cat2").Range("cat2")
WordPaste wordApp, Worksheets("Cat3").Range("cat3")
Application.Selection.Copy

wordApp.Visible = True
wordApp.Selection.PasteSpecial Link:=False, DataType:=wdPasteOLEObject, Placement:=wdInLine, DisplayAsIcon:=False

apliword.Quit
End Sub

Sin embargo, me marca error ya que dice que no se ha definido un sub o función (para el renglón en donde empieza WordPaste) , este es el primer código que me mencionaste que podría servirme, abajo de éste pusiste otro que es:

Sub WordPaste(WordObject As Object, myRange As Range)
myRange.Select
Application.Selection.Copy
WordObject.Selection.PasteSpecial Link:=False, DataType:=wdPasteOLEObject, Placement:=wdInLine, DisplayAsIcon:=False
End Sub

No tengo mucha idea de cómo utilizar este último código. Asi mismo te comento que los rangos cat1, cat2, ....... etc. son rangos que yo nombré de esa manera y cada uno de ellos se encuentra en distintas hojas de un mismo libro de excel. Ya logré copiar y pegar uno de esos rangos pero no he conseguido que me copie y pegue todos los demás, la idea es que todos los rangos queden en un mismo documento de word.

Espero me puedas ayudar, plis!

Muchas gracias por tu atención.

Última edición por priska; 07/08/2008 a las 09:53 Razón: localización del error en dnd empieza WordPaste
  #20 (permalink)  
Antiguo 07/08/2008, 10:27
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: excell to word???

Bueno, es que este código:
Código PHP:
Sub WordPaste(WordObject As ObjectmyRange As Range)
myRange.Select
Application
.Selection.Copy
WordObject
.Selection.PasteSpecial Link:=FalseDataType:=wdPasteOLEObjectPlacement:=wdInLineDisplayAsIcon:=False
End Sub 
Debes ponerlo en un módulo.

P.S.: ¿Para qué estás creando otra aplicación Word con el objeto apliword?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #21 (permalink)  
Antiguo 07/08/2008, 16:06
 
Fecha de Ingreso: junio-2008
Mensajes: 8
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: excell to word???

Hola David!

Gracias por contestar, la cosa es que al ejecutar el código anterior:
Sub WordPaste bla bla bla....... no hace más que seleccionar el rango y copiarlo pero no lo pega en word como una imagen. Con el código anterior a este pude copiar y pegar uno de los 10 rangos que tenía en una de las 10 hojas de un libro de excel - lo hic e utilizando el objeto apliword - el problema que surge es que sólo me copia y pega en word la hoja que tenga activada, las demás no las pela.

De nuevo gracias
  #22 (permalink)  
Antiguo 09/08/2008, 10:17
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: excell to word???

Puedes hacer un for que recorra todas las hojas. Por ejemplo:
Dim Hoja As Object
Código PHP:
For Each Hoja In WorkSheets 
Luego, usas el objeto Hoja para copiar los datos de todas las hojas.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #23 (permalink)  
Antiguo 01/03/2013, 15:03
 
Fecha de Ingreso: marzo-2013
Mensajes: 2
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: excell to word???

aqui esta la solucion http://www.combito.com/?p=523
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 00:10.