Numerador automático en Excel

En ocasiones necesitamos implementar un numerador automático en Excel el cual genere un número de factura, o un número de recibo o que simplemente lleve la cuenta de las veces que se ha abierto un libro.

Aunque esta funcionalidad es muy simple, si eres de las personas que realiza esta acción continuamente, el hecho de automatizarla te ahorrará varios segundos, que con el tiempo se podrían llegar a convertir en minutos o en horas. Otro beneficio de crear un numerador automático en Excel es que nos aseguraremos de que dicho numerador siempre será incrementado y no volveremos a olvidarnos de realizar dicha actualización.

Numerador automático para facturas en Excel

Para nuestro ejemplo tomaré como base una plantilla de factura de ventas disponible de manera gratuita en Office.com y que contiene el número de factura en la celda B9 tal como se muestra en la siguiente imagen:

Numerador automático en Excel

Nuestro objetivo es hacer que el número contenido en dicha celda sea actualizado de manera automática al momento de abrir el libro y para lograrlo debemos utilizar macros, pero en especial el evento Workbook_Open.

El evento Workbook_Open en VBA

Si eres nuevo en la programación VBA solo debes saber que un evento nos ayuda a monitorear el momento exacto en el que ocurren las cosas dentro de Excel de manera que podamos ejecutar nuestro propio código en el instante en que sucede dicho evento.

El evento Workbook_Open nos permite ejecutar código en el instante en que nuestro libro es abierto por lo que es el momento adecuado para actualizar de manera automática la celda que contiene el número de factura. El código que utilizaremos será el siguiente:

Private Sub Workbook_Open()

Range("B9").Value = Range("B9").Value + 1
ThisWorkbook.Save

End Sub

La línea 3 del código hace el incremento en uno de la celda B9 y la siguiente línea guarda el archivo de manera que el cambio se haga permanente. Este código debe colocarse en el Editor de Visual Basic como parte de ThisWorkbook tal como se muestra en la siguiente imagen:

Numerador automático para facturas o recibos en Excel

Al guardar el archivo y volverlo a abrir el código se ejecutará automáticamente y se incrementará en uno el valor de la celda B9.

Numerador semiautomático en Excel

El código de la sección anterior funcionará perfectamente y realizará la actualización cada vez que se abra el libro de Excel sin realizar intervención alguna, pero es posible que en ocasiones necesitemos abrir el archivo solo para realizar alguna consulta y sin necesidad de incrementar el numerador. Si deseas solicitar la confirmación del usuario antes de utilizar el numerador automático, debemos modificar nuestro código de la siguiente manera:

Private Sub Workbook_Open()

respuesta = MsgBox("¿Desea autoincrementar?", vbYesNo)

If respuesta = vbYes Then
Range("B9").Value = Range("B9").Value + 1
End If

ThisWorkbook.Save

End Sub

Al momento de abrir el libro se mostrará un cuadro de diálogo preguntando si deseamos utilizar el autoincremento y solo en caso de pulsar el botón “Si” se incrementará el valor de la celda B9.

Factura en Excel con numerador automático

El numerador automático en Excel que he mostrado en este artículo realiza la actualización al momento de abrir el libro, pero puedes elegir cualquier otro evento de Excel para ejecutar el código en otro instante. Por ejemplo, puedes elegir cualquiera de los siguientes eventos:

  • Workbook_BeforeClose: se activa antes de cerrar el libro.
  • Workbook_BeforePrint: se activa antes de imprimir.
  • Workbook_BeforeSave: se activa antes de guardar.

Descarga el libro de trabajo utilizado en este artículo y comprueba el funcionamiento del numerador automático que acabamos de crear.