COMBINAR MACROS CON CAMPOS DE FORMULARIO EN WORD

Hace poco tuve un problema práctico, necesitaba crear alrededor de 50 plantillas de Word y la sola idea de programar línea a línea usando Select.Typetext Text:= me daba dolor de estómago. ¿No sería mejor escribir las plantillas en Word e insertar los campos de formulario, que luego se conectaran con la una macro de entrada de datos?. Eso me ahorraría mucho trabajo y permitiría hacer una macro estándar que sirviese para varias plantillas con solo modificaciones menores.

Pero no encontraba la forma de hacerlo, finalmente se me ocurrió repasar el curso de un tal Tomás Bradanovic y ahi encontre la solución, ¿como lo hice? siguiendo mis propios consejos grabé un macro y luego estudié el código generado. Le saqué las líneas superfluas y listo.

Entrando en materia el procedimiento es el siguiente:

Private Sub UserForm_Initialize()
UserForm1.Caption = "Autopsia"
Label1.Caption = "MEDICO" 'combo1
Label2.Caption = "JUEZ" 'combo2
Label3.Caption = "SECRETARIO" 'combo3
Label4.Caption = "MOVIMIENTO" 'combo4
Label5.Caption = "FECHA" 'textbox1
Label6.Caption = "FALLECIDO" 'textbox2
Label7.Caption = "ROL" 'textbox3
Label8.Caption = "" 'textbox4
Label9.Caption = "" 'textbox5
Label10.Caption = "" 'Žtextbox6
TextBox4.Visible = False
TextBox5.Visible = False
TextBox6.Visible = False
TextBox1.Text = Date
ComboBox4.Text = "SUM SOLICITA INF AUTOPSIA"
ComboBox1.AddItem "CARLOS VILLAVICENCIO SILVA"
ComboBox1.AddItem "ADRIANA BARRIENTOS ESPINOZA"
ComboBox2.AddItem "JORGE QUIÑONES GARAT"
ComboBox2.AddItem "HECTOR GUTIERREZ MASSARDO"
ComboBox3.AddItem "HECTOR GUTIERREZ MASSARDO"
ComboBox3.AddItem "JULIO MAZUELOS RAMOS"
ComboBox1.Text = ComboBox1.List(0)
ComboBox2.Text = ComboBox2.List(0)
ComboBox3.Text = ComboBox3.List(0)
End Sub

Private Sub CommandButton1_Click()
Selection.GoTo What:=wdGoToBookmark, Name:="tribunal"
Selection.TypeText Text:="PRIMER"
Selection.GoTo What:=wdGoToBookmark, Name:="ciudad"
Selection.TypeText Text:="ARICA"
Selection.GoTo What:=wdGoToBookmark, Name:="fecha"
Selection.TypeText Text:=TextBox1.Text
Selection.GoTo What:=wdGoToBookmark, Name:="medico"
Selection.TypeText Text:=ComboBox1.Text
Selection.GoTo What:=wdGoToBookmark, Name:="rol"
Selection.TypeText Text:=TextBox3.Text
Selection.GoTo What:=wdGoToBookmark, Name:="fallecido"
Selection.TypeText Text:=TextBox2.Text
Selection.GoTo What:=wdGoToBookmark, Name:="juez"
Selection.TypeText Text:=ComboBox2.Text
Selection.GoTo What:=wdGoToBookmark, Name:="secretario"
Selection.TypeText Text:=ComboBox3.Text
Selection.GoTo What:=wdGoToBookmark, Name:="medico2"
Selection.TypeText Text:=ComboBox1.Text
Unload UserForm1
End Sub

Como pueden ver, todo se reduce a una instrucción
Selection.GoTo What:=wdGoToBookmark, Name:="nombre de variable" y luego escribimos en el campo con Selection.TypeText Text:=TextBox2.Text

Algunas precauciones al programar plantillas

Si están programando una plantilla (.dot) en lugar de un documento corriente hay que tener en cuenta que para modificarla debemos usar botón derecho y Abrir, si hacemos doble click no aparecerá la plantilla sino un Doc1.doc.

También hay que tener cuidado de no probar el programa cuando esté abierto como plantilla porque deesaparecerán los campos (serán reemplazados) y perderás el trabajo. Hay que cerrarla y luego abrirla con doble click para que aparezca como Doc1.doc.

Los detalles y adornos no los coloco para no enredarlos, solo les muestro a modo de idea, que se puede colocar alguna propaganda en el programa, en este caso al hacer click sobre "Tomás Bradanovic Computación" aparece la ventana de propaganda:

Un último dato, si abren la caja de herramientas y luego van a Herramientas, Controles Adicionales del menú, pueden agregar el control Microsoft MonthView 6.0 con lo que pueden dotar de un calendario a sus aplicaciones VBA para los programas que requieran cálculos con fecha, agendas, etc, miren que bonito es

Esto último lo descubrió Tomás Jr. (9 años) que está aprendiendo también a usar el VBA.

Ya lo ven, programar en VBA es más fácil que comer pan, espero que estos datos les hayan servido

[email protected]

http://fly.to/arica

 

Autor: Tomás Bradanovic
http://members.spree.com/sip/tombrad

Entrega 1 - Entrega 2 - Entrega 3 - Entrega 4 - Entrega 5 - Entrega 6 - Entrega 7 - Entrega 8 - Entrega 9
Descargar