Hoy voy a hablar de hacer facturas automatizadas con Excel.
Y te preguntarás… ¿por qué primera parte?
Bueno, pues porque podemos hacer dos tipos de facturas.
Aquellas en las que facturamos una única unidad, por ejemplo, cuando facturamos un servicio o un producto digital y aquellas en las que podemos llegar a facturar más de una unidad y de distintos productos, por ejemplo, cuando facturamos tornillos y alcayatas.
La manera de automatizar las facturas con Excel, aunque es muy similar no es igual para los dos casos y me ha parecido interesante hacerlo por separado para no dejar a nadie sin la explicación que se ajuste a sus necesidades.
Hoy me centraré en el primer caso, es decir, cuando facturamos una única unidad. Un único producto o servicio.
Contenidos
Crear listas desplegables en Excel
Antes de entrar al trapo, creo que es interesante explicarte cómo crear una lista desplegable de los datos que contiene, una única columna, de una tabla oficial de Excel.
Es algo que vamos a necesitar para automatizar nuestras facturas y tenemos que saber cómo hacerlo.
Y, te recuerdo que no es lo mismo un rango de datos en forma de tabla, que una tabla oficial de Excel.
Si no sabes de qué te estoy hablando, antes de seguir leyendo, te diría que le eches un ojo a este post en el que explico la diferencia entre un rango y una tabla oficial de Excel, y las ventajas que tienen las tablas oficiales frente a los rangos de datos.
Si no lo haces, igual te pierdes un poco…
Para crear una lista desplegable, tenemos dos opciones.
Para cualquiera de las dos opciones, aunque no es necesario hacerlo, siempre es preferible asignarle antes un nombre a nuestra tabla (también puedes ver cómo hacerlo en el post sobre las tablas de Excel).
A la tabla que yo he creado, y con la que te voy a enseñar cómo hacerlo, le he asignado el nombre «Clientes».
Utilizando la función INDIRECTO
Personalmente, esta me parece la opción más sencilla, pero entiendo que esto de meterse con funciones de Excel, no le molará a todo el mundo y habrá quien prefiera la segunda…
Para utilizar este sistema, lo primero que tenemos que hacer es situarnos en la celda en la que queremos que nos salga la lista desplegable.
Una vez estamos en ella, vamos a la pestaña «Datos» y en la ficha «Herramientas de datos», clicamos sobre la opción «Validación de datos».
Se nos abre una ventana en la que tenemos que escoger la opción «Lista» del desplegable «Permitir» y en el cuadro «Origen» escribir la siguiente fórmula:
=INDIRECTO(«NombreDeLaTabla[TituloDeLaColumna]»)
No te olvides de las comillas…
En mi caso, he creado un desplegable de la columna «Cliente» en la tabla «Clientes», por tanto, mi fórmula es la siguiente:
Sólo con esto, ya tenemos la lista desplegable en la celda que hemos escogido.
Crear un nombre intermedio
Para asignarles un nombre intermedio a los datos que queremos tener en la lista desplegable, lo primero que tenemos que hacer es seleccionar esos datos (sin seleccionar el título de la columna) y clicar sobre la opción «Asignar nombre» que encontramos en la ficha «Nombres definidos» en la pestaña «Fórmulas».
Nos aparecerá la ventana «Nombre nuevo» y ya podemos ver, en la parte inferior de la misma, cómo Excel nos dice que el nombre que escribamos «Se refiere a» nombre de la tabla y datos que contiene la columna.
=Clientes[Cliente]
Escribimos el nombre, yo he puesto «NombreCliente», y aceptamos.
Ahora nos toca crear el desplegable.
Vamos a la celda que hemos escogido y volvemos a clicar sobre opción de validación de datos en la pestaña «Datos».
En la parte inferior escribimos:
=NombreIntermedioQueTuHayasDecidido (en mi caso, =NombreCliente)
Al hacerlo, Excel selecciona las celdas que corresponden al nombre intermedio que hemos puesto. Así podemos comprobar que esa selección es correcta.
Aceptamos y ya podemos ver nuestra la lista desplegable en la celda escogida.
Bueno, ahora ya sí, podemos meternos en harina…
Cómo crear facturas automatizadas con Excel
Para crear facturas automatizadas con Excel, lo más práctico es hacerlo teniendo previamente preparadas algunas tablas.
Las tablas van a depender de cada caso, pero las principales son la de clientes y la de productos o servicios.
Como siempre, te recomiendo que les pongas nombres a las tablas porque vamos a utilizar un poquito de formulación y si las tablas tienen nombres, será mucho más sencilla de hacer y de entender posteriormente.
Las hojas que te recomiendo tener para automatizar una factura
Para lo que vamos a hacer, te recomiendo que tengas un mínimo de 3 hojas:
Hoja de clientes.
La hoja de clientes es aquella en la que pondremos la tabla con todos los datos que dispongamos de ellos, pero sobre todo, sí o sí, tenemos que introducir los datos que se tienen que constar en la factura.
Hoja de productos o servicios
En esta hoja vamos a poner la tabla de productos o servicios con el precio que tiene asociado cada uno de ellos.
Hoja de factura
Esta será la hoja en la que vamos a generar la factura.
El diseño lo dejo en tus manos.
Yo he creado uno muy básico, sin formatos chulos y especiales, pero suficiente para explicarte cómo la vamos a automatizar.
Cabecera de la factura
Fecha de factura
Dando por supuesto de que cuando entramos a la página de facturación, es porque necesitamos generar una nueva factura, la fecha la podemos automatizar muy fácilmente con la fórmula =HOY(), que nos devuelve el día en curso.
Número de factura
Automatizar el número de factura es la parte más complicada y va a requerir un poquito de programación en VBA.
Te voy a explicar la forma más sencilla que se me ocurre, pero si no quieres meterte con un minimísimo de programación, no te va a quedar más remedio que poner el número a mano.
Voy a ir paso a paso, intentando explicarme de la mejor manera que sé.
Para esta explicación voy a partir del número de factura que ves en la imagen de arriba, 2023-0128 pero tú puedes poner el que quieras porque el procedimiento va a ser el mismo.
1º. Fuera del área de impresión de la factura (si quieres puedes ponerlo en otra hoja, pero es lo más práctico en la misma), ponemos el siguiente cuadro:
2º. El año lo vamos a extraer de la fecha de factura a través de la fórmula «AÑO». Como que en este ejemplo la fecha de la factura la he puesto en la celda G6, la fórmula sería =AÑO(G6) que me va a devolver 2023.
3º El número de factura, la primera vez, lo introducimos manualmente.
Escribo 128.
4º. Añadimos el cuadro azul.
Éste cuadro no es más que una forma rectangular que he puesto a través de la pestaña «Insertar», «Ilustraciones» y «Formas», a la que le he añadido el texto «NUEVA».
Venga, que nos metemos en harina…
5º. Para empezar, si aún no la tienes, vas a tener que activar la pestaña «Programador».
Si no sabes cómo hacerlo, lo puedes ver en este post.
6º. A través de esta pestaña «Programador», vamos a acceder al editor de Visual Basic (el primer botón de la izquierda).
Si has creado las tres hojas que te he dicho, te encontrarás la estructura de carpetas que ves en la imagen a continuación.
7º. Sitúate en el Módulo 1.
8º. Copia y pega el siguiente código (cambiando, si es necesario, la celda en la que has puesto el número que quieres que vaya aumentando. En mi caso es la celda J2)
Sub NumeroFactura()
Range(«J2»).Value = Range(«J2»).Value + 1
End Sub
Con este código le estamos dando a Excel una instrucción, «NumeroFactura», con la que le decimos que, en la celda J2, ponga el valor que contiene esta misma celda +1.
(No te preocupes por las líneas en blanco que ves en mi código ni por las que tienen texto en verde, no tienen importancia).
«NumeroFactura» es el nombre que yo le he puesto a la macro que ahora asignaré al botón «NUEVA». Si tú prefieres otro nombre, puedes cambiarlo.
9º. Una vez copiado el código, clica sobre el botón «Guardar» y vuelve a Excel (ya puedes cerrar el editor de Visual Basic).
10º. Selecciona el rectángulo «NUEVA» y, con el botón segundario, clica en la opción «Asignar macro».
Te aparecerá una ventana en la que tienes que ver la macro «NumeroFactura» que acabamos de crear.
11º. Selecciónala y clica en «Aceptar».
Si todo ha ido bien, a partir de este momento, cuando pases el ratón por encima del cuadro «NUEVA», verás que se puede clicar en él.
Al hacerlo, el número que tenías en la celda que has escogido (en mi caso J2), irá incrementándose uno a uno.
Bueno, ya hemos hecho la parte más complicada.
Ahora vamos a crear el número de factura.
12º. Para que el número de factura sea como habíamos decidido, con el año, un guion y el número con cuatro dígitos después, lo haremos con las fórmulas «CONCATENAR» y «TEXTO», de la siguiente manera:
=CONCATENAR(CeldaAño;»-«;TEXTO(CeldaNumeroDeFactura;»0000»))
En mi caso es la siguiente:
=CONCATENAR(J1;»-«;TEXTO(J2;»0000»))
¿Qué estoy haciendo con esta fórmula?
Le digo a Excel que ponga lo que se encuentra en la celda J1 seguido de un guion y después del guion, lo que hay en la celda J2 transformándolo en un texto de 4 cifras, es decir, que no trate ese número como número, sino que lo trate como texto.
13º. A partir de ahora, cada vez que vayas a crear una nueva factura, tendrás que clicar sobre el botón «NUEVA» para que se genere el número de factura correlativo de forma automática.
Si por cualquier motivo te equivocas y clicas dos veces sobre el botón «NUEVA», solo tienes que poner manualmente el número correcto en la celda (J2) y todo seguirá funcionando perfectamente.
Bueeeeno, ya tenemos la parte más difícil.
Lo que viene a continuación ya será «toma pan y moja«.
Datos del cliente
Para poner de forma automática la información del cliente, tendrás que crear una lista desplegable con los nombres de los clientes en la celda correspondiente (en mi caso G8), con cualquiera de los dos sistemas que te he enseñado al principio del post.
A partir de el nombre del cliente, haremos una búsqueda del resto de datos con la fórmula BUSCARV (o BUSCARX para usuarios de Office 2019 en adelante y Office 365, pero yo voy a usar BUSCARV que la tenemos disponible en todas las opciones de Office).
Nos situamos en la celda en la que tiene que aparecer el NIF (G9).
En la tabla de clientes que yo he creado, el NIF está en la columna B, es decir, en la segunda columna.
Por tanto, la fórmula será:
=BUSCARV(G8;Clientes[#Todo];2;FALSO)
Buscar en vertical (BUSCARV) el contenido de la celda G8 (el nombre del cliente); en la tabla «Clientes» entera ([#Todo]) lo que se encuentre en la columna B (2) y devolver coincidencia exacta (FALSO).
Para el resto de los datos, haremos lo mismo.
La misma fórmula cambiando el número de la columna por aquella que contenga el dato que buscamos.
Por ejemplo, la dirección (que yo la tengo en la columna C) sería en la columna 3, etc.
Si tienes el código postal en una columna y la localidad en otra como yo, volveremos a usar la fórmula «CONCATENAR» para unir el contenido de ambas columnas.
La fórmula quedaría así:
=CONCATENAR(BUSCARV(G8;Clientes[#Todo];4;FALSO);» «;BUSCARV(G8;Clientes[#Todo];5;FALSO))
Juntas el código postal (que está en la columna 4), un espacio en blanco a través de las dos comillas separadas por ese espacio en blanco y la localidad (que yo la tengo en la columna 5).
Con todo esto, tenemos la cabecera de la factura completa.
Aunque ha costado más explicarlo que hacerlo, la hemos rellenado clicando un botón (el número de factura) y seleccionando al cliente.
Cuerpo de la factura
Como ya te debes estar imaginando, lo que vamos a hacer con el cuerpo de la factura va a ser muy parecido a lo que hemos hecho con los datos de los clientes.
Y no te estás equivocando…
Creamos una lista desplegable a partir de la tabla de servicios y con la fórmula BUSCARV ponemos el precio.
=BUSCARV(B16;Servicios[#Todo];2;FALSO)
Ahora sólo nos queda calcular el IRPF, el IVA y el total de nuestra factura.
Imagino que esto ya no te hace falta, pero te muestro las fórmulas para que no se diga…
Bueno, creo que por hoy ya ha habido suficiente.
Hemos trabajado un poquito, pero a partir de hoy haremos las facturas clicando un botón y seleccionando los datos de dos listas desplegables.
Ya sólo nos queda imprimirlas en pdf, enviarlas al cliente…
…¡y que nos pague!…
¡¡¡Que tiene que ser tan rápido y tan fácil como ha sido hacerle la factura!!!
¡¡Hasta el próximo día!!
Que haremos facturas para tornillos y alcayatas 😉
Excelente! Claro, sencillo, al grano. Me ha encantado y te felicito
Muchas gracias Giselle. Me alegro que te haya servido