** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Word
  Mensajes nuevos Mensajes nuevos RSS - VOLCAR DATOS DE FORMULARIO A DOS PLANTILLAS DISTIN
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoVOLCAR DATOS DE FORMULARIO A DOS PLANTILLAS DISTIN

 Responder Responder
Autor
Mensaje
MILGUAKI Ver desplegable
Nuevo
Nuevo


Unido: 25/Mayo/2021
Localización: MÁLAGA
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje Tema: VOLCAR DATOS DE FORMULARIO A DOS PLANTILLAS DISTIN
    Enviado: 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 
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3523
Enlace directo a este mensaje Enviado: 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
Arriba
MILGUAKI Ver desplegable
Nuevo
Nuevo


Unido: 25/Mayo/2021
Localización: MÁLAGA
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje Enviado: 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





Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3849
Enlace directo a este mensaje Enviado: 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
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3523
Enlace directo a este mensaje Enviado: 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

Arriba
MILGUAKI Ver desplegable
Nuevo
Nuevo


Unido: 25/Mayo/2021
Localización: MÁLAGA
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje Enviado: 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.


Arriba
MILGUAKI Ver desplegable
Nuevo
Nuevo


Unido: 25/Mayo/2021
Localización: MÁLAGA
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje Enviado: 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
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable