En ocasiones nos habremos encontrado con la necesidad de querer numerar secuencialmente un mismo documento de Word, para generar por ejemplo Cartas de Pago, o facturas, etc. En este artículo veremos como realizarlo empleando dos Macros, una de ellas realizada por Marta y ya publicada en nuestra Web y la otra realizada por otra de nuestras habituales colaboradoras, Mónica, que se ha basado en una macro original de Dug Robbins para este propósito.

Nuestra primera macro inserta un número correlativo o consecutivo y  genera su documento en un archivo nuevo según su serie. La Macro original está realizada por Doug Robbins y modificada Mónica,

 

La primera macro requiere insertar dos marcadores, tarea que podemos llevar a cabo seleccionando insertar / marcador, en la barra de menús de Word. El primer marcador le hemos denominado [uno] y al segundo marcador [order], el marcador [uno] lo debemos situar justo al inicio de nuestro texto, es decir, en la primera linea delante de la primera palabra de nuestro texto y el marcado [order] delante del numero que queramos hacer secuencial. Los Marcadores insertados, los podremos visualizar seleccionando en nuestra barra de menús edición / ir a / marcador.

 

Antes de ejecutar la macro debemos crear una carpeta, que en nuestro ejemplo hemos llamado pruebas, y que tenemos ubicada en el directorio que contiene nuestro perfil de usuario, en  "C:\Documents and Settings\usuario\Mis documentos\pruebas"

Sub Auto_Numerar()

'Macro original de Dug Robbins modificada por Monica D.

Application.ScreenUpdating = False

Order = System.PrivateProfileString("C:\Settings.Txt", _
        "MacroSettings", "Order")

Selection.GoTo What:=wdGoToBookmark, Name:="Order"
 Selection.MoveRight Unit:=wdCharacter, Count:=4

If Order = "" Then
    Order = 1
Else
    Order = Order + 1
End If

System.PrivateProfileString("C:\Settings.txt", "MacroSettings", _
        "Order") = Order

ActiveDocument.Bookmarks("Order").Range.InsertBefore Format(Order, "0#00")

    Selection.TypeBackspace
    Selection.TypeBackspace
    Selection.TypeBackspace
    Selection.TypeBackspace

Selection.GoTo What:=wdGoToBookmark, Name:="Uno"

'modicar esta ruta por aquella que contenga nuestra perfil de usuario

ChangeFileOpenDirectory _        

"C:\Documents and Settings\usuario\Mis documentos\pruebas\"

ActiveDocument.SaveAs FileName:="Numero_" & Format(Order, "0#00")

Application.ScreenUpdating = True


End Sub


La segunda macro sirve para unir todos los ficheros de Word generados individualmente, por si los quisiéramos dejar en un solo documento, tenéis las instrucciones y el código de esta macro en nuestra Web:

 

Macro para unir varios archivos de word 

 

A modo de ejemplo os dejamos un documento de Word que ya lleva este código insertado para que visualicéis de una forma más gráfica el resultado de ejecutar nuestra macro. 

Al ejecutar la macro observaremos que en nuestra unidad C se habrá creado un archivo de texto llamado settings.txt. Editando este fichero directamente con el bloc de notas podremos resetear la numeración que queramos que aparezca en nuestro fichero de Word. La macro ofiginal de Doug Robbins la podéis consultar aquí. 

 

{jos_sb_discuss:6}