Foros del Web » Soporte técnico » Ofimática »

Word: ¿como se introduce texto automaticamente al abrir el documento???

Estas en el tema de Word: ¿como se introduce texto automaticamente al abrir el documento??? en el foro de Ofimática en Foros del Web. Hola amigos, estoy dandole vueltas al word... tengo un documento maestro o plantilla, en el que tengo que rellenar el nombre y la dirección e ...
  #1 (permalink)  
Antiguo 15/01/2007, 09:06
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 22 años
Puntos: 9
Word: ¿como se introduce texto automaticamente al abrir el documento???

Hola amigos, estoy dandole vueltas al word...

tengo un documento maestro o plantilla, en el que tengo que rellenar el nombre y la dirección e imprimirlo. tan solo eso...

¿como se podría hacer para que al abrir automaticamente ese documento word te preguntara los datos en forma de caja de texto y tu solo lo rellenas y luego lo imprimis automaticamente?

me huelo que hay que tocar los campos (estoy intentandolo con el FILLIN) y creo que se hará con macros o VB pero no sé por donde empezar..

bueno, gracias mil

nos vemos pronto, prontitooooooooo
__________________

***Aprendiz de todo y maestro de nada***
  #2 (permalink)  
Antiguo 16/01/2007, 15:51
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 22 años
Puntos: 9
Re: Word: ¿como se introduce texto automaticamente al abrir el documento???

hola de nuevo, subo el post por si alguien lo lee,
gracias
__________________

***Aprendiz de todo y maestro de nada***
  #3 (permalink)  
Antiguo 16/01/2007, 16:59
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Re: Word: ¿como se introduce texto automaticamente al abrir el documento???

Creo recordar que existe una macro al abrirse word llamada autoexe o algo asi. O si no usa el evento open de el documento
por ejemplo
Cita:
Private Sub Document_Open()
MsgBox "acabo de arrancar"
InputBox ("¿Como te llamas?")
End Sub
salu2
  #4 (permalink)  
Antiguo 17/01/2007, 08:24
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 22 años
Puntos: 9
Re: Word: ¿como se introduce texto automaticamente al abrir el documento???

hola de nuevo..

ante todo gracias por responder, eso es lo que yo busco, pero lo que quiero es que al escribir dentro de las cajas de texto, me coloque el texto en algunos sitios especificos del documento...

me explico, suponiendo que tenga una plantilla que ponga la carta:

Estimado Señor: [aqui vendría el texto de la caja que se abre al arrancar el documento]

¿como podría hacer yo esto?

gracias de antemano, y sigo mirando esto... uffff
__________________

***Aprendiz de todo y maestro de nada***
  #5 (permalink)  
Antiguo 17/01/2007, 13:55
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Re: Word: ¿como se introduce texto automaticamente al abrir el documento???

Cita:
Private Sub Document_Open()
MsgBox "acabo de arrancar"
nombre = InputBox("¿Como te llamas?")
Selection.TypeText Text:=nombre
End Sub
mejor busca un tutorial de vba para word

salu2
  #6 (permalink)  
Antiguo 18/01/2007, 09:04
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 22 años
Puntos: 9
Re: Word: ¿como se introduce texto automaticamente al abrir el documento???

Gracias dogduck por responder....

entiendo que la línea
Selection.TypeText Text:=nombre

te transcribe lo que has escrito,, pero ¿en que lugar específico del documento?, ¿hay que insertar un campo de word para recoger esa variable?

¿no podría insertar un campo o bien meter tambien un textfield que recogiera esa variable???

uhhh,,, tendré que buscarme algún manual como tu dices
__________________

***Aprendiz de todo y maestro de nada***
  #7 (permalink)  
Antiguo 18/01/2007, 11:15
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 22 años
Puntos: 9
Re: Word: ¿como se introduce texto automaticamente al abrir el documento???

hola de nuevo,,, he estado consultando en la MDSN de microsoft,, les pongo lo que he podido hacer hasta el momento...

Private Sub Document_Open()
nombre = InputBox("¿Como te llamas?")
FormFields("nombre").Result = nombre

apellidos = InputBox("¿me dices tus apellidos?")
FormFields("apellidos").Result = apellidos

Rem comprobamos los datos introducidos y mandamos imprimir
MsgBox ("Los datos son los siguientes:&nombre&apellidos ",vbOKCancel,"¿Imprimimos o no Pepe?",43) = vbOk then

Rem mandamos imprimir dos copias
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=2, Pages:="", PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0

Rem dejamos los campos de texto limpios
ActiveDocument.FormFields("nombre").Result = ""
ActiveDocument.FormFields("apellidos").Result = ""

'Cerramos el documento sin guardar ningún tipo de cambios
'pero con esta instrucción siempre me lo pregunta. ¿como sería correctamente?
ActiveWindow.Close

' si no pues volveríamos al principio
Else
'¿como se hace para volver al principio sin tener que repetir
'todas las lineas del principio
End If
End Sub

pues este el código, me da error en el msgbox, dice que la sintaxis no es correta y luego tambien que hay un end sin cerrar, pero yo lo tengo cerrado, pues nada, ya me dicen ustedes, voy a ver si me tomo una infusión para despejarme la cabeza.

un saludete.
__________________

***Aprendiz de todo y maestro de nada***
  #8 (permalink)  
Antiguo 19/01/2007, 05:36
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 4 meses
Puntos: 144
Re: Word: ¿como se introduce texto automaticamente al abrir el documento???

Aparte de que te falta el IF del condicional (porque tienes un "then" al final de la linea), las comillas dobles están mal colocadas. Debería quedarte así:

Código:
If MsgBox("Los datos son los siguientes:" & nombre & apellidos, vbOKCancel, "¿Imprimimos o no Pepe?", 43) = vbOK Then
Salu2

Última edición por 3pies; 19/01/2007 a las 05:45
  #9 (permalink)  
Antiguo 19/01/2007, 13:26
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 22 años
Puntos: 9
Re: Word: ¿como se introduce texto automaticamente al abrir el documento???

hola de nuevo..
gracias 3pies por responder,,,, voy a ver si lo pruebo... creo que voy a revisar el código de nuevo, ¿sabes que me pasó? , pues que el dolor de cabeza que tenía no era por el código, sino por una fiebre, desde que escribí el post me metí en la cama y no me he levantado hasta ahora, he pasado una noche sudando la fiebre, con 39 grados, pero ahora estoy algo mejor, voy a ver si me pongo con esto y me lo puedo quitar de encima...

ya os digo...

lo dicho, muchas gracias por responder.
__________________

***Aprendiz de todo y maestro de nada***
  #10 (permalink)  
Antiguo 20/01/2007, 05:47
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 22 años
Puntos: 9
Re: Word: ¿como se introduce texto automaticamente al abrir el documento???

hola de nuevo,,, me ahogo en un vaso de agua, he estado retocando el código,,,, de momento lo he simplificado más aún para ver si me aclaro con esto....
Cita:
Private Sub Document_Open()

nombre = InputBox("¿Como te llamas?")
FormFields("nombre").Result = nombre
apellidos = InputBox("¿me dices tus apellidos?")
FormFields("apellidos").Result = apellidos

If MsgBox("Los datos son los siguientes:" & nombre & apellidos, vbOKCancel, "¿Imprimimos o no Pepe?", 43) = vbOK Then

'mandamos imprimir el documento

Else

'dejamos los campos de texto limpios

End If

End Sub
sin embargo, cuando ejecuto el código me da el erron en tiempo de ejecucion diciendome que el argumento o la llamada del procedimiento no es válida.

¿donde puede estar el fallo?
__________________

***Aprendiz de todo y maestro de nada***
  #11 (permalink)  
Antiguo 20/01/2007, 06:27
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 22 años
Puntos: 9
Re: Word: ¿como se introduce texto automaticamente al abrir el documento???

Hola de nuevo,,, sigo chekeando esto, despues de varios bugs creo que el fallo está al pasar la cadena de texto, me refiero al argumento TITLE del msgbox donde yo pongo "¿imprimimos pepe?", despues de probar a eliminar ese argumento, el código me va bien....

¿cual sería la sintaxis correcta de dicho argumento?
__________________

***Aprendiz de todo y maestro de nada***
  #12 (permalink)  
Antiguo 20/01/2007, 09:09
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 22 años
Puntos: 9
Re: Word: ¿como se introduce texto automaticamente al abrir el documento???

hola de nuevo... bueno, me he tirado un rato haciendo bugs y leyendo documentanción, uffff, pero creo que más o menos ya he sacado algo que se parece un poco a lo que yo quería.... al final la línea esa se ha quedado así...

Cita:
datos_correctos = MsgBox("¿Son los datos correctos?" & (Chr(13)) & nombre & (Chr(13)) & apellidos, vbInformation + vbOKCancel, "Pulse Aceptar para imprimir, Cancelar para corregir los datos")
Quiero aprovechar para agradecer la ayuda prestada y orientación hacia donde encaminar los pasos, muchas gracias...

aprovecho y pongo las lineas de código por si alguien le puede llegar a ser útil, la idea era que al abrir un doc. de word te pregunte datos y luego una vez introducido los datos imprima y cierre el doc.

Si veis que hay algo que se pueda mejorar (que seguro que si, decirlo por favor). gracias

Cita:
Private Sub Document_Open()

Dim nombre As String
Dim apellidos As String

nombre = InputBox("¿Como te llamas?", "Introduzca el nombre")
FormFields("nombre").Result = nombre

apellidos = InputBox("¿me dices tus apellidos?", "Introduzca los apellidos")
FormFields("apellidos").Result = apellidos


Rem comprobamos los datos introducidos
datos_correctos = MsgBox("¿Son los datos correctos?" & (Chr(13)) & nombre & (Chr(13)) & apellidos, vbInformation + vbOKCancel, "Pulse Aceptar para imprimir, Cancelar para corregir los datos")

Rem Si los datos NO SON correctos volvemos al principio
If datos_correctos = vbCancel Then
ActiveDocument.FormFields("nombre").Result = ""
ActiveDocument.FormFields("apellidos").Result = ""
Call Document_Open

Rem si los datos son correctos imprimimos dos copias y preguntamos si cerramos
Else

Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=2, Pages:="", PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0

Rem preguntamos si desea seguir trabajando con el mismo documento
cerrar = MsgBox("¿DESEA SALIR DEL DOCUMENTO?", vbInformation + vbOKCancel, "Pulse Aceptar para salir o Cancelar para introducir otro dato")

Rem Si pulsamos aceotar cerramos guardando los cambios.
If cerrar = vbOK Then
Application.Documents("NewDocument.doc").Close (Word.WdSaveOptions.wdSaveChanges)

Rem si quisieramos cerrar sin guardar los cambios habría que poner
' Me.Close (Word.WdSaveOptions.wdDoNotSaveChanges)
' o si queremos que nos pregunte al salir poner
'ActiveWindow.Close


Rem si no quiere cerrar el documento pues volvemos al inicio
Else
Call Document_Open
End If
End If



End Sub

__________________

***Aprendiz de todo y maestro de nada***
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:54.