Estamos desarrollando una plantilla de factura para Word, que contiene un número de factura en un campo en la parte superior de la página.
Nos gustaría que el número de factura se incremente automáticamente (desde el último número de factura) y nos gustaría que el nombre del archivo se base en el número de factura.
Todos se guardarán en el mismo directorio.
Respuesta1
encontréesteque creo que resolverá el problema:
Utilice una macro de Autonueva para agregar un número secuencial a un documento y guardarlo con ese número.
En la plantilla a partir de la cual crea el documento, inserte un marcador llamado Orden en la ubicación donde desea que aparezca el número secuencial y cree una macro AutoNueva en la plantilla, de la siguiente manera:
Sub AutoNew() Order = System.PrivateProfileString("C:\Settings.Txt", _ "MacroSettings", "Order") 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, "00#") ActiveDocument.SaveAs FileName:="path" & Format(Order, "00#") End Sub
Si no necesita mostrar el número en el documento, pero solo desea guardarlo con un número secuencial, no es necesario crear el marcador en la plantilla y luego debe eliminar la penúltima línea del código.
Respuesta2
Sub GoGenInv()
Selection.GoTo What:=wdGoToBookmark, Name:="BkMrk_InvNum"
Selection.MoveRight Unit:=wdCharacter, Count:=10, Extend:=wdExtend
Dim nInvNum As Variant
nInvNum = Val(Selection.Text)
nInvNum = nInvNum + 1
Selection.Text = nInvNum
Selection.GoTo What:=wdGoToBookmark, Name:="BkMrk_InvNum"
End Sub