Como insertar contenido de un text en un documento de word
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
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
Me interesa practicar un poco esto me podeis decir como abrir el documento de word? Gracias.
Me pueden enviar un ejemplo de como abrir un docto word predefinido al mail...
gracias
gracias
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
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
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
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
Cuando tengo mas marcadores no me funciona el código anterior, me podeis ayudar?
Muchas gracias.
PD. Por favor responderme
Muchas gracias.
PD. Por favor responderme
Hola,
Por cada marcador que tengas te tedrás que posicionar en ellos con
wordApp.Documents(docActivo).Bookmarks(marca).Select
Saludos
sdemingo
Por cada marcador que tengas te tedrás que posicionar en ellos con
wordApp.Documents(docActivo).Bookmarks(marca).Select
Saludos
sdemingo
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
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
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!
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!
