border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

Cuenta Bancaria en EEUU
  #1 (permalink)  
Antiguo 29-06-2006, 09:32:07
Avatar de Insomnia17
Gran Participación en el Foro
 
Registrado: abr 2004
Posts: 401
Insomnia17 Valoración +2
Predeterminado Pasar datos entre documentos word

Hola

Quiero unir la información contenida en varios documentos Word en un solo documento word. Para ello utilizo el siguiente código:

Código:
            With PedDoc
                .Application.Documents.Open rutiee
                Proforma.Documents.Item(1).Tables(1).Cell(Linea, 1).Range.Text = .Documents.Item(1).Tables(3).Cell(k, 2).Range.Text
                Proforma.Documents.Item(1).Tables(1).Cell(Linea, 2).Range.Text = .Documents.Item(1).Tables(3).Cell(k, 3).Range.Text
                Set PedDoc = Nothing
                .Quit
            End With
Es una parte del código, PedDoc y Proforma estan declarados como objetos Word
Código:
Dim Proforma As New Word.Application
    Dim PedDoc As New Word.Application
El problema es que cuando ejecuto la aplicación me salen unos mensajes por cada documento PedDoc que abro:

Este archivo está en uso por otra aplicación u otro usuario. (Aocuments and Settings\...\Normaol.dot), y luego empieza a decirme que guarde el dot, me abre el documento, me dice que se han hecho cambios que afectan a la plantilla global, Normal.dot,...

El caso es que si ejecuto paso a paso, no da esos errores, lo hace todo bien, como podría solucionarlo?

--Gracias--
Responder Con Cita
  #2 (permalink)  
Antiguo 29-06-2006, 11:18:06
Avatar de J.M.Movilla
Administrador
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.490
J.M.Movilla Valoración +2
Predeterminado

Nunca he utilizado este método para unir varios documentos. Voy incrustando los documentos, leyéndolos directamente tras situar el puntero a donde quiero insertar el nuevo documento:
Código:
    Documents.Open FileName:="Nombre.doc", ConfirmConversions:=False, ReadOnly _
        :=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _
        :="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="" _
        , Format:=wdOpenFormatAuto
Pero por lo que comentas sobre que funciona bien en Diseño, ¿has probado a insertar un DoEvents tras cada línea de Proforma?

O investigar a ver si ese método también admite un parámetro semejante al ConfirmConversions:=False del Documents.Open...
__________________
José María Movilla Cuadrado
______________________
www.foro.vb-mundo.com
www.vb-mundo.com

Responder Con Cita
  #3 (permalink)  
Antiguo 29-06-2006, 13:04:08
Avatar de Insomnia17
Gran Participación en el Foro
 
Registrado: abr 2004
Posts: 401
Insomnia17 Valoración +2
Predeterminado

Hola

Gracias por responder, mi problema es que no puedo insertar todo el documento, tengo que insertar algunas celdas de una de las tablas que tienen los documentos. He probado con DoEvents pero me sigue dando error.

--Gracias--
Responder Con Cita
  #4 (permalink)  
Antiguo 29-06-2006, 13:15:23
Avatar de Insomnia17
Gran Participación en el Foro
 
Registrado: abr 2004
Posts: 401
Insomnia17 Valoración +2
Predeterminado

Hola

He estado haciendo pruebas y si quito la parte de .Quit, no da ningún error, pero me deja el WINWORD en el administrador de tareas.

Alguna idea?
Responder Con Cita
  #5 (permalink)  
Antiguo 29-06-2006, 21:21:32
Avatar de J.M.Movilla
Administrador
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.490
J.M.Movilla Valoración +2
Predeterminado

Yo creo que el problema te lo produce el hecho de que tratas de cerrar Word cuando está actualizando el documento. Tienes que ingeniártelas para darle tiempo a que termine de leer y actualizar todo el documento.

Algo así como

Código:
On Error Resume Next
Bucle:
DoEvents
Err = 0
.Quit
If Err <> 0 Then Goto Bucle
On Error Goto 0
__________________
José María Movilla Cuadrado
______________________
www.foro.vb-mundo.com
www.vb-mundo.com

Responder Con Cita
  #6 (permalink)  
Antiguo 30-06-2006, 07:49:44
Gran Participación en el Foro
 
Registrado: may 2006
Posts: 109
Scherzo Valoración +2
Predeterminado

Creo que tu problema puede venir por esta parte del código:

Código:
...
Set PedDoc = Nothing 
PedDoc.Quit
...
Es decir, estás apuntando PedDoc a Nothing antes de cerrarlo, por lo tanto estás perdiendo la referencia al objeto abierto y luego cuando haces el .Quit lo estás haciendo de un PedDoc que apunta a Nothing, no al documento que realmente tenías abierto, por eso se te queda el WinWord abierto ya que tiene un documento abierto (aunque desreferenciado). Prueba a invertir el orden de esas dos instrucciones a ver qué pasa.

Esto que te digo es una suposición, no lo he probado, pero tiene toda la pinta que podría estar ahí tu problema.

Saludos
Responder Con Cita
  #7 (permalink)  
Antiguo 03-07-2006, 08:02:28
Avatar de Insomnia17
Gran Participación en el Foro
 
Registrado: abr 2004
Posts: 401
Insomnia17 Valoración +2
Predeterminado

Gracias

He probado las opciones pero no me funcionan, continua dandome el mismo error. Seguré intentandolo.

--Saludos--
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
Pasar datos a un archivo Word GuNA VBA (Excel, Word, Outlook, Access) 2 21-06-2007 11:11:40
Como pasar datos desde vb 6.0 a una tabla word 00114898 VBA (Excel, Word, Outlook, Access) 0 15-03-2007 17:36:12
Combinar documentos Word con datos en SqlServer gtorres VBA (Excel, Word, Outlook, Access) 4 05-09-2006 15:14:34
pasar datos entre listview canayube Visual Basic.NET 2003 & 2005 1 15-05-2006 21:09:16
Como pasar los datos de un DATAGRID a EXCEL y WORD ikki_26 Visual Basic 6.00 2 30-05-2005 18:54:39


La franja horaria es GMT. Ahora son las 00:39:44.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right