Saltear al contenido principal

Crear automáticamente documentos numerados

En muchas ocasiones, como facturas u otros documentos legales, necesitaremos crear nuevos documentos con un número que se vaya incrementando, también automáticamente, cada vez.

Es una pregunta que mis seguidores me hacen, con bastante frecuencia, en los comentarios a diferentes entradas. Es por lo que considero necesario escribir esta entrada para aclarar y unificar toda esta información dispersa por el blog.

No hay funcionalidades integradas de Word que permitan hacerlo; Tenemos que recurrir a la programación en VBA.

El código está tomado de la página de los mvp de Word de Microsoft: https://wordmvp.com/FAQs/MacrosVBA/NumberDocs.htm y apenas he modificado nada, solo lo imprescindible, como las rutas, para que sea lo más exacto posible al original, incluidos los nombres.

Se trata de una macro tipo AutoNew, se podría hacer también con una normal, pero esta tiene la ventaja de que es automática. Cada vez que creemos un nuevo documento basado en esa plantilla se generará automáticamente.

Antes que nada, creo un archivo de texto en una ubicación de mi disco duro. Este archivo es el contador de la numeración y en él se puede reiniciar o cambiar, si lo necesitamos.

Muestro la ubicación del archivo de texto con la numeración

En un documento en blanco inserto un marcador, llamado Order, en el lugar donde quiero el número. Este documento lo guardo como plantilla. Donde se guarde, si no cambiamos la ruta, se guardarán los nuevos documentos numerados. Estos aparecerán como Path001.docx y así sucesivamente. En la imagen de mi ejemplo es Path004.docx. Yo he guardado la plantilla DocumentosNumerados.dotm en Users\José\Documents\Plantillas personalizadas de Office para poder acceder a ella desde Archivo > Nuevo > Personal.

Documentos numerados

En el mismo lugar que guardamos la plantilla se guardan, por defecto, los nuevos documentos numerados, basados en ella.

En la vista previa del nuevo documento se observa la marca de formato donde coloqué el marcador Order en la plantilla.

Ya lo tenemos todo, con Alt+F11 abrimos el editor de Visual Basic y pegamos el código en un nuevo módulo de ThisDocument. Este es el código que he usado en mi ejemplo:

Sub AutoNew()

Order = System.PrivateProfileString(«C:\Users\Pepe\Settings.Txt«, «MacroSettings», «Order»)

If Order = «» Then
Order = 1
Else
Order = Order + 1
End If

System.PrivateProfileString(«C:\Users\Pepe\Settings.txt«, «MacroSettings», _
«Order») = Order

ActiveDocument.Bookmarks(«Order»).Range.InsertBefore Format(Order, «00#»)
ActiveDocument.SaveAs FileName:=»path» & Format(Order, «00#»)

End Sub

Además del nombre del marcador (Order), se puede cambiar la ruta del archivo Settingd.txt y el nombre de los nuevos documentos numerados (Path). La ruta de Settings.txt, no es que se pueda, es que se debe, porque en mi ejemplo hay una ubicación del disco duro de mi ordenador. Path lo puedes sustituir por Factura número:, o lo que corresponda.

Espero que te guste y sea útil. Si es así, sigue el blog y compártelo con tus contactos. Espero tus comentarios y sugerencias para nuevos temas.

También puedes seguir el Curso avanzado de Word en mi canal de Youtube

Esta entrada tiene un comentario

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Volver arriba