Pasar datos de formulario. Texbox a word

Es la siguiente. Resulta que deseo pasar datos de distintos texbox de un
formulario de datos de alumnos excel a documento de Word prediseñado con
marcadores según recomendó el experto de esta manera (yo lo ajuste
a mis necesidades)

Sub cmbMarcadores1()
Dim wordApp As Word.Application
Dim wordDoc As Word.Document
Dim wordRange As Word.Range
PASCH = "C:\Users\4502\Desktop\Gestión de
Escuela\EXCEL\Documento Prueba.doc"
Set wordApp = New Word.Application
Set wordDoc = wordApp.Documents.Open(PASCH)
wordApp.Visible = True
With wordDoc
.Bookmarks("Nombre").Range.Text =
TxtApellidoNombre.Value .Bookmarks("Dni").Range.Text =
TxtFechaNacimiento.Value
End With
'Guardo
wordDoc.Sabe
Set wordApp = Nothing
End Sub

El problema es que ni siquiera abre Word pues salta el error
ERROR DE COMPILACIÓN, NO SE HA DEFINIDO EL TIPO DEFINIDO POR EL USUARIO.
El error me subraya la siguiente línea:
Dim DocWord As Word.Application
Lei por ahí que en referencias, bajo Referencias disponibles de Visual Basic debería buscar y seleccionar la biblioteca "Biblioteca de objetos de Microsoft DAO 3.0" que esto
seria la solución a mi problema, y a continuación, hacer clic en Aceptar.
Si no aparecía, el cual es mi caso, debería hacer clic en Examinar y busque el
archivo Dao3032.dll.
Nomas lo intento, simplemente se cuelga y salta la aplicación.
Si me pueden dar una mano.

1 respuesta

Respuesta
1

Estás realmente cerca :)

Si el error, como cuentas, te da en la línea:

Dim DocWord As Word.Application

Eso es que te falta la referencia de Microsoft Word, así que tan solo tienes que entrar nuevamente en Referencias e incluir esta:

"Microsoft Word XX.X Object Library"

Donde XX. X será un número en función de la versión de Office que tengas, por ejemplo, en mi caso que tengo Office 2003, la referencia que tendría que añadir sería:

"Microsoft Word 11.0 Object Library"

Suerte!
Carlos
[email protected]

Gracias Carlos, funciono tu respuesta. Quedo perfecto.

Una mas te pido, haber si soy yo el que le esta pidiendo demasiado al excel.

Entre esos tantos datos que tengo que pasar la formulario Word se encuentra una imagen picture el cual pretendía pasar de esta manera:

después de crear el objeto Word y "setear" el documento, mas o menos sigo asi:

'datos que paso al documento word

txt_nombre = TxtApellidoNombre.Value
txt_numdni = TxtFechaNacimiento.Value

ídem.... otros datos

'Selecciono la imagen a copiar y pegar en Word

ActiveSheet.Shapes(nombrecurso).Select
Selection.Copy

'nombrecurso es el nombre que yo lo he asignado al objeto shape


FileCopy "C:\Users\armando\Desktop\Gestión Escuela\Formulario.doc", "C:\Users\armando\Desktop\Gestión Escuela\Formulario1.doc"

wdDoc.Documents.Open "C:\Users\armando\Desktop\Gestión Escuela\Formulario1.doc"

Aquí pretendo pegar el objeto shape en la posición prefijada según el marcador "imagen" de word, la idea es que si el marcador sirve solo para reemplazarlo con algo, también lo haría con la imagen

wdDoc.ActiveDocument.Bookmarks("Imagen").Range.Text = Selection.Paste

de aquí para abajo funciona bien

wdDoc.ActiveDocument.Bookmarks("Nombre").Range.Text = txt_nombre
wdDoc.ActiveDocument.Bookmarks("DNI").Range.Text = txt_numdni
' Mantiene abierto el documento de Word
wdDoc.Visible = True
' Se destruyen los objetos
Set wdApp = Nothing
Set wdDoc = Nothing

Evidentemente, a juzgar por los resultados, esto no es asi. Probé grabar una macro para ver que código me genera, pero solo llega a copiar la imagen y no graba mas nada. No graba cuando abro Word y pego la imagen, nada. solo cuando copio la imagen de excel y ahi queda el código.

Salvo este inconveniente el resto funciona bien. Tendrás a mano alguna solución?. Muchas gracias por tu tiempo y dedicación

Donde has puesto:

wdDoc.ActiveDocument.Bookmarks("Imagen").Range.Text = Selection.Paste

Debes poner:

WdDoc. ActiveDocument. Bookmarks("Imagen"). Range. Paste

Con esta línea, lo que tengas en el portapapeles, que en este caso es una imagen, se pegará exactamente donde se encuentra el marcador "Imagen"

Saludos,
Carlos
[email protected]

Disculpa la tardanza en responder, me toco cuidar a mi padre estos días en la clínica por un tema de salud.

Funciono excelente. Muchas Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas