Visual Basic - De BV a Word

Life is soft - evento anual de software empresarial
 
Vista:

De BV a Word

Publicado por P@tollica (4 intervenciones) el 14/12/2006 14:33:45
Mi siguiente pregunta, primero, puedo traspasar datos de un Flexgrid a Word, facil, pero ahora, como le hago para escribir algo desde VB a Word, me explico, osea, diseñar la plantilla en VB con nombres y datos y que luego, simplemente me los muestre en Word cosa de llegar e imprimir?; ojala me entiendan, ojala me ayuden
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:De VB a Word

Publicado por Pere (150 intervenciones) el 14/12/2006 17:11:57
Crea, con Word, una plantilla con marcadores y la guardas con formato .dot
En Referencias, debes tener Microsoft Word 11.0 Object Library (MSWORD.OLB)

Dim impreso$, MiArchivo$
impreso = Printer.DeviceName
Set xWord = New Application
xWord.ActivePrinter = impreso
Dim wdDoc As Word.Document
Dim wdMark As Bookmark

MiArchivo = "C:\Plantilla.dot"
Set wdDoc = xWord.Documents.Open(MiArchivo)
xWord.Documents.Add destino

Set xRange = xWord.ActiveDocument.Range
xRange.Bookmarks("nombre").Range.InsertAfter Text1.text

xWord.ActiveDocument.PrintOut True, False, wdPrintAllDocument
xWord.Visible = False
xWord.DisplayAlerts = wdAlertsNone
xWord.ActiveDocument.Close False
xWord.Quit
Set xWord = Nothing

Espero te sirva.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:De VB a Word

Publicado por P@tollica (4 intervenciones) el 14/12/2006 21:04:35
^^ gracias, pero solo tengo un pequeño problema:

"Range.Bookmarks("nombre").Range.InsertAfter Text1.text"

en esta parte me arroja un error de que la variable object no a sido declarada o algo asi.

por que demonios pasa eso >_<!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:De VB a Word

Publicado por Pere (150 intervenciones) el 15/12/2006 08:58:56
Faltaba declarar la variable:
Dim xRange As Range

Disculpa el descuido. Ya me dirás si te ha funcionado.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:De VB a Word

Publicado por Pere (150 intervenciones) el 15/12/2006 09:03:00
Tienes puesto:
Range.Bookmarks("nombre").Range.InsertAfter Text1.text

Al Range le falta la x:
xRange.Bookmarks("nombre").xRange.InsertAfter Text1.text

Acuérdate de declarar la variable Dim xRange as Range, como te señalaba en el post anterior.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Rectificación

Publicado por Pere (150 intervenciones) el 15/12/2006 09:29:07
Hola de nuevo, P@tollica.
Faltaba otra declaración: Dim xWord As Word.Application
El código que te envié al principio lo copié directamente desde el módulo sin darme cuenta que las declaraciones de las variables las tenía al principio del formulario.
Aquí va todo el código completo y te pido mil disculpas por los inconvenientes que te haya podido causar.

Dim impreso$, MiArchivo$
Dim xRange AS Range
Dim xWord As Word.Application
impreso = Printer.DeviceName
Set xWord = New Application
xWord.ActivePrinter = impreso
Dim wdDoc As Word.Document
Dim wdMark As Bookmark

MiArchivo = "C:\Plantilla.dot"
Set wdDoc = xWord.Documents.Open(MiArchivo)
xWord.Documents.Add destino

Set xRange = xWord.ActiveDocument.Range
xRange.Bookmarks("nombre").Range.InsertAfter Text1.text

xWord.ActiveDocument.PrintOut True, False, wdPrintAllDocument
xWord.Visible = False
xWord.DisplayAlerts = wdAlertsNone
xWord.ActiveDocument.Close False
xWord.Quit
Set xWord = Nothing
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Rectificación

Publicado por P@tollica (4 intervenciones) el 15/12/2006 21:09:29
Gracias men, se agradece la ayuda que me has dado
Vale por todo

Algun dia lo retribuire
thanks for all and
C'ya
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar