Imprimir página | Cerrar ventana

VOLCAR DATOS DE FORMULARIO A DOS PLANTILLAS DISTIN

Impreso de: Foro de Access y VBA
Categoría: Otros de Microsoft: Windows y Office
Nombre del foro: Word
Descripción del foro: Foro de Word
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86023
Fecha de impresión: 24/Septiembre/2023 a las 05:22


Tema: VOLCAR DATOS DE FORMULARIO A DOS PLANTILLAS DISTIN
Publicado por: MILGUAKI
Asunto: VOLCAR DATOS DE FORMULARIO A DOS PLANTILLAS DISTIN
Fecha de publicación: 25/Mayo/2021 a las 14:05
Buenas, un saludo a todos, soy nuevo.

La cosa es que estoy aprendiendo un poco de VBA por mi cuenta y tengo un PROBLEMÓNCry

Tengo un Formulario con una serie da datos, y al darle al botón sustituye los datos del formulario con los
FormFields de una plantilla de word que tengo confeccionada.

hasta aquí todo bien.

Pero necesito que desde ese formulario me abra otra plantilla y sustituya los FormFields de esa segunda plantilla por datos de ese mismo formulario.

Perdón si me explico mal.

Resumen = rellenar un formulario y al darle al botón que se abran dos plantillas distintas y se sustituyan datos.

Muchas gracias 



Respuestas:
Publicado por: prga
Fecha de publicación: 26/Mayo/2021 a las 10:32
hola.
Bienvenid@ al foro.
Lo he leído varias veces y no tengo claro el "problemón".
Pregunta: Al hablar de formulario ¿es un formulario access o es un formulario Word?
Y si puedes, pon el código que usas en lo que ya funciona.
Ya comentas.
Un saludo a todos


Publicado por: MILGUAKI
Fecha de publicación: 26/Mayo/2021 a las 12:10
Gracias por la bienvenida..

Ya se que no me explico muy bien y encima mi conocimiento de VBA es muy poquito.
Me intento explicar mejor.

como ejemplo:

Tengo una plantilla de Word (PLANTILLA1) con un cuadro de texto activex(MARCADOR1), en la que he insertado un formulario VBA con dos cuadros de texto y un botón.

Por otro lado tengo otra plantilla de Word (PLANTILLA2) con otro cuadro de texto (MARCADOR2).

Mi intención es rellenar los dos cuadros de texto del formulario, y al darle al botón que:
1º Sustituya el cuadro de texto activex por el valor introducido en el txt1 del formulario. (esto lo consigo)
2º Que abra la PLANTILLA2 y que sustituya el cuadro de texto activex por el valor introducido en el txt2 del formulario

El codigo que tengo es:

Private Sub CommandButton1_Click()
Dim nombre As Range
Dim apellido As Range

Set nombre = ActiveDocument.FormFields("MARCADOR1").Range
nombre = Me.TextBox1.Value

me falta el codigo que abre la PLANTILLA2, que iguala la variable apellido con MARCADOR2
Y que sustituye

End Sub

La verdad es que lo mismo es una chorrada, pero Thumbs Down

Gracias







Publicado por: lbauluz
Fecha de publicación: 26/Mayo/2021 a las 14:31
Muy buenas, Milguaki.

Si no lo entiendo mal, lo que pretendes es que al final en la plantilla 2 esté el contenido de la plantilla 1, ¿no?

Un saludo.

Luis


-------------
El Búho es un pajarraco


Publicado por: prga
Fecha de publicación: 26/Mayo/2021 a las 15:00
Hola.
En general cuando se trabaja con varios documentos, es buena práctica asignarles nombres para trabajar con más seguridad( el activedocument puede ser uno o el otro), en este caso sería algo parecido a:
dim doc1 as document
dim doc2 as document
set doc1=activedocument  '''suponemos que es el doc abierto en primer lugar y a partir de ahora será el doc1
set doc2=documents.open(doc1.path & "\plantilla2.docx") '''' en un principio en este momento sería el activedocument salvo cosas extrañas que lo impida

con lo anterior, podemos pasar del doc1 al doc2 a conveniencia ( en el sitio de activedocument iría el doc1 o doc2 según convenga)

Lo anterior está escrito de memoria y a título de ejemplo.
Espero que ayude a resolver la duda
Ya comentas.
Un saludo a todos



Publicado por: MILGUAKI
Fecha de publicación: 27/Mayo/2021 a las 08:54
Publicado originalmente por prga prga escribió:

Hola.
En general cuando se trabaja con varios documentos, es buena práctica asignarles nombres para trabajar con más seguridad( el activedocument puede ser uno o el otro), en este caso sería algo parecido a:
dim doc1 as document
dim doc2 as document
set doc1=activedocument  '''suponemos que es el doc abierto en primer lugar y a partir de ahora será el doc1
set doc2=documents.open(doc1.path & "\plantilla2.docx") '''' en un principio en este momento sería el activedocument salvo cosas extrañas que lo impida

con lo anterior, podemos pasar del doc1 al doc2 a conveniencia ( en el sitio de activedocument iría el doc1 o doc2 según convenga)

Lo anterior está escrito de memoria y a título de ejemplo.
Espero que ayude a resolver la duda
Ya comentas.
Un saludo a todos


ClapClapClapClapClapClapClapClapClap

Muchas gracias.

Tu respuesta ha sido de gran ayuda, y al final he conseguido lo que pretendía.




Publicado por: MILGUAKI
Fecha de publicación: 27/Mayo/2021 a las 08:56
Publicado originalmente por lbauluz lbauluz escribió:

Muy buenas, Milguaki.

Si no lo entiendo mal, lo que pretendes es que al final en la plantilla 2 esté el contenido de la plantilla 1, ¿no?

Un saludo.

Luis
Gracias por contestar. 

Si , ya el compañero prga ha solucionado mi consultaClap



Imprimir página | Cerrar ventana