Anda di halaman 1dari 3

Necesito incrementar un numero que contiene el numero de factura de una

template en Word, a la cual le aado automaticamente la fecha y la hora pero


no se como puedo incrementar un nmero de manera automatica cada vez que se
abre la template.
Se puede hacer?
Hola, Jos Luis.
Lo que intentas lo puedes hacer si combinas campos con un poco de
programacin VBA. No es difcil, y an cuando no sepas el lenguaje lo puedes
hacer, si sigues cuidadosamente las instrucciones siguientes.
Primero, debes insertar un campo numrico en tu documento. Ese campo
numrico llevar el control del nmero correlativo. Segundo, debers ajustar
el nivel de seguridad de tu Word para permitirte utilizar macros. Tercero,
debers copiar un pequeo macro en el evento "Document_Open". Y Cuarto,
necesitars eventualmente modificar el correlativo, por cualquier imprevisto.
Vamos ahora con el proceso. Te sugiero que cierres todos los documentos, y
abras solamente el que contendr el correlativo.
PRIMERO: Inserta el campo numrico...
1. Sita el cursor en el lugar donde deseas el correlativo.
2. Activa la barra de herramientas Formularios ("Ver" - "Barras de
herramientas" - "Formularios")
3. Haz clic en el botn "Campo con Texto".
4. Inmediatamente, haz clic en el botn "Opciones de campos de formulario"
5. En el cuadro de dilogo haces las siguientes selecciones:
En "Tipo": Seleccionas "Nmero".
En "Nmero predeterminado", escribes 0 (cero) o el valor inicial.
En "Marcador", escribes "Correlativo" (este ser el nombre de tu campo).
6. Haz clic en el botn "Aceptar".
7. Cierra la barra de herramientas Formulario
SEGUNDO: Ajustas el nivel de seguridad...
1. Haga clic en "Herramientas" - "Macro" - "Seguridad", y establezca el
nivel "Medio".
TERCERO: Copias el macro...
1. Haz clic en "Herramientas" - "Macro" - "Editor de Visual Basic".
2. Para asegurarte que se encuentre disponible el Explorador de Proyectos,
pulsa F2.
3. El explorador de proyectos es una lista jerrquica, parecida a la lista
de carpetas del Explorador de Windows. Se muestra por lo regular en la

esquina superior izquierda del Editor de VBA. En esta lista, localiza el


proyecto correspondiente al documento que ests editando: Project
(NombreDocumento), y expndelo. Si es necesario, expande las carpetas del
proyecto, hasta localizar el elemento "ThisDocument".
4. Haz doble clic en el elemento ThisDocument. Al lado derecho se mostrar
una ventana en blanco para la edicin del cdigo.
5. Copia y pegas a esta ventana lo siguiente:
Private Sub Document_Open()
ActiveDocument.FormFields("Correlativo").Result =
ActiveDocument.FormFields("Correlativo").Result + 1
End Sub
NOTA: Son tres lneas: Private..., ActiveDocument... y End Sub. La de
enmedio puede dividirse en dos por espacio en el editor del foro. Si fuera
as, asegrate de volver a unirla en una sola.
6. Cierras el Editor de Visual Basic. (No es necesario guardar).
7. Guarda y cierra el documento.
8. Vuelves a abrir el documento (asegrate de habilitar las macros) y
observa si se actualiz el correlativo.
CUARTO: Cuando necesites actualizar el nmero del correlativo...
1. Haz clic derecho en el nmero del correlativo, y luego en "Propiedades".
2. Modifica el valor del correlativo en el cuadro "Nmero predeterminado".
3. Guarda y cierra su documento.
Difcil? Aparentemente, pero creme no lo es. Tal vez un poco largo, pero
vale la pena.
Comentas si encuentras dificultades al implementarlo.
Saludos.
"Jose Luis" escribi:
Muchas gracias David.
Lo he podido hacer y me ha resultado super prctico.
Despus de haber perdido horas y horas buscando explicaciones por el Google,
vas t y me lo resuelves a la primera.
Como dice el dicho: El que sabe, sabe.
MUCHISIMAS GRACIAS DE TODO CORAZN.
"David" escribi:

Tengo otra pequea solucin.


Prob tu solucin y funciona aunque slo al abrir el mismo archivo.
No me funcion en una plantilla para cada vez que necesitaba crear un nuevo
documento basado en esa plantilla. Asi que modifiqu ligeramente el cdigo
asi.
Primero, no us la opcin formularios, sino que cree una propiedad
configurable (Propiedades del documento, Personalizar) que llam Folio. Bueno
esto por gusto, me imagino que usando formulario tambin servira.
Luego en VB, en ThisDocument
pegu lo siguiente:
Private Sub Document_New()
Dim Folio As Integer
Folio = Templates(1).CustomDocumentProperties("Folio").Value
Templates(1).CustomDocumentProperties("Folio").Value = _
Templates(1).CustomDocumentProperties("Folio").Value + 1
Templates(1).Save
On Error Resume Next
ActiveDocument.CustomDocumentProperties("Folio").Value = Folio
End Sub
Luego en el documento plantilla (yo lo hice en la cabecera) pegu el campo
{DOCPROPERTY Folio \*mergeformat}
(Insertar, campo, Inf. Documento, DocProperty, busqu la etiqueta creada
Folio y acept)
Guard la plantilla y listo.
Cada vez que creo un documento nuevo, se actualiza la plantilla con esa
opcin.
Por lo menos a mi me funciona, el nico problema es que se contabiliza cada
vez que creas un nuevo documento, lo guardes o no, lo imprimas o no.
Haban otras opciones para detectar esos eventos, pero haba que configurar
y la idea era que fuera lo ms transparente posible.
Esto lo us para controlar los documentos que se crean en una organizacin.
Saludos,
-Muchisimas Gracias,

Anda mungkin juga menyukai