Mostrando entradas con la etiqueta VBA. Mostrar todas las entradas
Mostrando entradas con la etiqueta VBA. Mostrar todas las entradas

jueves, 19 de noviembre de 2009

Macro actualizar campos Ms Word

Algo muy común cuando usamos Sharepoint, sobretodo WSS para intranets, es tener plantillas de documentos con campos en los que se muestran algunos metadatos del ítem.

El otro día me comentó un cliente que estos campos no se actualizaban automáticamente y muchos usuarios guardaban el documento sin actualizar los campos, lo cual era un problema para ellos. La solución fue práctiacamente instantánea; una macro que actualice dichos campos al abrir el documento de forma automática:

 Dim rango As Range 
Dim campo As Field
For Each rango In ActiveDocument.StoryRanges
For Each campo In rango.Fields
campo.Update
Next campo
Next rango

Espero que os resulte útil.

Un saludo.

viernes, 7 de noviembre de 2008

Ejemplo macro con un formulario en Word

En este ejemplo voy a mostrar cómo hacer un formulario que carga datos en un plantilla de Word de una forma muy simple.

Voy a empezar mostrando el resultado para que sea más simple entender el código. Tenemos una plantilla de Word muy sencilla (se puede complicar todo lo que queramos) y queremos que aparezca un formulario para introducir los datos en él y que se carguen a su vez en el lugar correspondiente en la plantilla. Como el usuario final puede no tener mucha idea de informática, hemos creado un nuevo botón en la pestaña "Ver".


Cuando hagamos click en "Formulario Carga Datos" aparecer´el siguiente formulario.


Cuando hagamos click en el botón "OK" los datos se cargarán automáticamente en el documento.


Hasta aquí he mostrado el resultado, ahora voy a contar cómo se hace.

Por un lado tenemos el formulario (sólo hay que dibujarlo):


Por otro el código (basta con hacer doble click en el botón "OK" y luego pegar el siguiente código).

Private Sub OK_Click() 
Selection.GoToWhat:=wdGoToBookmark, Name:="NombreC"
Selection.TypeText Text:=Nombre.Text

Selection.GoToWhat:=wdGoToBookmark, Name:="Codigo"
Selection.TypeText Text:=Codigo.Text

Selection.GoToWhat:=wdGoToBookmark, Name:="Contrato"
Selection.TypeText Text:=Contrato.Text

Selection.GoToWhat:=wdGoToBookmark, Name:="ERP"
Selection.TypeText Text:=ERP.Text

Unload UserForm1

End Sub

Private Sub UserForm_Initialize()
'Con esto cargamos la fecha en el label 6
Label6.Caption = Date
End Sub


Finalmente, sólo me falta contar cómo agregar un botón en una pestaña. Para ello hay varias opciones pero quizá la más sencilla sea pinchar en Herramientas->Personalizar.



En la ventana que aparece buscamos en la parte izquierda "Macros", posteriormente pinchamos en la macro que queramos agregar y la arrastramos a la pestaña en la que deseemos colocarla.