Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

¿Se puede incrementar un numero al abrir una template en word?

3,338 views
Skip to first unread message

Luis@discussions.microsoft.com Jose Luis

unread,
Oct 15, 2006, 3:06:01 PM10/15/06
to
Necesito incrementar un numero que contiene el numero de factura de una
template en Word, a la cual le añado automaticamente la fecha y la hora pero
no se como puedo incrementar un número de manera automatica cada vez que se
abre la template.
¿Se puede hacer?

David

unread,
Oct 16, 2006, 11:30:01 AM10/16/06
to
Hola, José Luis.

Lo que intentas lo puedes hacer si combinas campos con un poco de
programación VBA. No es difícil, y aún cuando no sepas el lenguaje lo puedes
hacer, si sigues cuidadosamente las instrucciones siguientes.

Primero, debes insertar un campo numérico en tu documento. Ese campo
numérico llevará el control del número correlativo. Segundo, deberás ajustar
el nivel de seguridad de tu Word para permitirte utilizar macros. Tercero,
deberás copiar un pequeño macro en el evento "Document_Open". Y Cuarto,
necesitarás 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 numérico...

1. Sitúa 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 botón "Campo con Texto".

4. Inmediatamente, haz clic en el botón "Opciones de campos de formulario"

5. En el cuadro de diálogo haces las siguientes selecciones:
En "Tipo": Seleccionas "Número".
En "Número predeterminado", escribes 0 (cero) o el valor inicial.
En "Marcador", escribes "Correlativo" (este será el nombre de tu campo).

6. Haz clic en el botón "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 jerárquica, 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 estás editando: Project
(NombreDocumento), y expándelo. 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 edición del código.

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 líneas: Private..., ActiveDocument... y End Sub. La de
enmedio puede dividirse en dos por espacio en el editor del foro. Si fuera
así, asegúrate 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 (asegúrate de habilitar las macros) y
observa si se actualizó el correlativo.

CUARTO: Cuando necesites actualizar el número del correlativo...

1. Haz clic derecho en el número del correlativo, y luego en "Propiedades".

2. Modifica el valor del correlativo en el cuadro "Número predeterminado".

3. Guarda y cierra su documento.


¿Difícil? Aparentemente, pero créeme no lo es. Tal vez un poco largo, pero
vale la pena.

Comentas si encuentras dificultades al implementarlo.

Saludos.

- - - - - -


"Jose Luis" escribió:

Jose Luis

unread,
Oct 17, 2006, 5:16:02 PM10/17/06
to
Muchas gracias David.

Lo he podido hacer y me ha resultado super práctico.

Después 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 CORAZÓN.

"David" escribió:

Hugo Miguel Angel

unread,
Apr 26, 2008, 5:05:01 PM4/26/08
to
Tengo otra pequeña solución.

Probé tu solución y funciona aunque sólo 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 código
asi.

Primero, no usé la opción formularios, sino que cree una propiedad
configurable (Propiedades del documento, Personalizar) que llamé Folio. Bueno
esto por gusto, me imagino que usando formulario también serviría.

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
opción.

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.

Habían otras opciones para detectar esos eventos, pero había que configurar
y la idea era que fuera lo más transparente posible.

Esto lo usé para controlar los documentos que se crean en una organización.

Saludos,
--
Muchisimas Gracias,
Visitame en:
www.mensajerosdeluz.com

Monica May

unread,
Apr 30, 2008, 8:28:47 PM4/30/08
to

hola Hugo :-)

Gracias por el aporte ;-) !!

Saludos
Monica

--
"Hugo Miguel Angel" <dono...@entiende.burro> escribió en el mensaje de
noticias news:79D06793-4221-4A7F...@microsoft.com...

ffalc...@gmail.com

unread,
May 24, 2015, 4:08:54 AM5/24/15
to
Saludos podrías pegar un ejemplo para descargar?? Gracias

ffalc...@gmail.com

unread,
May 24, 2015, 4:10:51 AM5/24/15
to
Podrias pegar un ejemplo. Gracias

maryori...@gmail.com

unread,
Apr 26, 2016, 5:54:13 PM4/26/16
to
hola y en excel cual es el codigo para hacerlo

sistema...@gmail.com

unread,
Mar 19, 2019, 5:30:01 PM3/19/19
to
Sencillo y plano.
Gracias Broh.
0 new messages