Como insertar contenido de un text en un documento de word

elena
25 de Agosto del 2008
Hola, necesito que alguien me diga como he de hacer para insertar el contenido de un text en un documento de word

Se como hacer para abrir el documento, pero no se como hay que hacer para que me inserte el registro en un lugar en concreto

Ejemplo.

DOCUMENTO:

D.Dª. ( aqui va el registro del text1), DNI ( y aqui el del text2)

FORMULARIO:

text1 = Elena
Text2= 12.123.456

¿Como tengo que hacerlo?
¿tengo que dar alguna ionstrucción en el documento?

Si alguien quiere ayudarme, POR FAVOR, hacerlo de forma clara, estoy empezando

Gracias de antemano

Elena G.G

Yuval
25 de Agosto del 2008
Me interesa practicar un poco esto me podeis decir como abrir el documento de word? Gracias.

Hero
25 de Agosto del 2008
Me pueden enviar un ejemplo de como abrir un docto word predefinido al mail...

gracias

rafa
25 de Agosto del 2008
Tienes que guardar esos datos en una bd (acces es lo mas comodo, creo) y combinar correspondencia entre el doc y la bd.
En word tienes una opcion, combinar correspondencia, sigue el asistente para elegir la tabla con la que combinas y luego inserta los campos en el documento word. Guardalo como plantilla de word .dot
y luego en vb:

Dim objWord As Word.Application
Dim objDoc As Word.Document
Dim strDocu As String
Set objWord = New Word.Application
objWord.WindowState = wdWindowStateMaximize
objWord.Visible = False
Set objDoc = objWord.Documents.Add(sRutaPlantillas & "documento.dot")
'objDoc.MailMerge.OpenDataSource Name:=sRutaAuxSadyr, linktosource:=True, sqlstatement:="Select * from GT_ENVIOS " objDoc.MailMerge.Execute objDoc.MailMerge.Application.PrintOut False
objWord.Quit False
Set objWord = Nothing

Suerte

sdemingo
25 de Agosto del 2008
En el casod e que no tengas esa información guardada en una BBDD de access, puedes hacer lo siguiente: Deberás colocar marcadores en el documento word a los que harás referencia luego para escribir el texto en esa posición.

dim marcador as string
dim texto as string

marcador = "NOMBRE"

If wordApp.Documents(docActivo).Bookmarks.Exists(marcador) = True Then ' Si existe el marcador

wordApp.Documents(docActivo).Bookmarks(marcador).Select 'te posicionas en el marcador

wordApp.Selection.Font.Bold = True 'Negrita
texto = Text1.Text 'asignas valor
wordApp.Selection.TypeText Text:=texto 'escribes en el word
wordApp.Selection.Font.Bold = False 'no negrita

End If

Tendías que hacer por cada una de las marcas que tuvieras en el documento word.

wordApp es el objeto Word.Application
docActivo es la ruta del documento word en cuestión.

Espero que te sirva

Un saludo

sdemingo

Mª Carmen
25 de Agosto del 2008
Cuando tengo mas marcadores no me funciona el código anterior, me podeis ayudar?

Muchas gracias.

PD. Por favor responderme

sdemingo
25 de Agosto del 2008
Hola,

Por cada marcador que tengas te tedrás que posicionar en ellos con
wordApp.Documents(docActivo).Bookmarks(marca).Select

Saludos
sdemingo

Mª Carmen
25 de Agosto del 2008
No me permite poner:
wordApp.Documents(docActivo).Bookmarks.Select
tengo q poner
wordApp.Documents.Add(docActivo).Bookmarks.Select
De está forma en lugar de abrirme el documento con los campos q le paso, me abre un documento por cada valor de cada campo.

Hay alguna manera de salvar el documento, para q mantenga todos los valores de los campos en un mismo archivo?

Otra pregunta con el método Open aunque le ponga Onlyread=false me lo abre de solo lectura

Por favor ayudame espero tu respuesta. Muchas gracias chao



zerjy
25 de Agosto del 2008
Dim oWrd As Word.Application
Dim oDoc As Word.Document

Set oWrd = New Word.Application
Set oDoc = oWrd.Documents.Open("C:Documento1.doc")

´ para rellenar los datos puedes hacer esto...

If Not (oDoc Is Nothing) Then
With oDoc
.Bookmarks.Item("Marcador1").Range.Text = "Valor1"
.Bookmarks.Item("Marcador2").Range.Text = "Valor22222222222222"
End With

´ para rellenar una tabla (tienes k tener 1 en el doc.)...

oDoc.Tables(1).Rows.Add ´Añade una fila
oDoc.Tables(1).Cell(1, 1).Range.Text = "Prueba Fila 1 Col 1"
oDoc.Tables(1).Cell(1, 2).Range.Text = "Prueba Fila 1 Col 2"

´ para visualizar el documento...

oWrd.Visible = True

´ para imprimir el documento...

oWrd.PrintOut
End If

´ IMPORTANTE! .. para cerrarlo (esto no guarda cambios)

oDoc.Saved = True
oDoc.Close
Set oDoc = Nothing
oWrd.Quit (False)
Set oWord = Nothing

´*******************************************************************
ya esta.. esto puedes probarlo Creando un documento nuevo de word(C:Documento.doc), le pones 2 marcadores (Marcador1 y Marcador2) y le pones una tabla(2 columnas)
Creas un proyecto nuevo con un boton y en el click le pones lo k esta entre los * (y la referencia a Microsoft Word...)

espero haberte serbido de ayuda!