You are on page 1of 12

https://www.youtube.com/watch?

v=xrjrI8Iaa3Q
https://www.youtube.com/watch?v=AZTf7bTbGjg
Factura en Excel Parte 1 – Plantilla, Fórmulas y
listas de validación de clientes y productos
BY SERGIO ALEJANDRO CAMPOS · AUGUST 27, 2018

En esta primera parte del Proyecto Factura en Excel descargaremos


una plantilla de una Factura sencilla y la formularemos para traer los
datos del Cliente a facturar en base a su nombre elegido en una lista de
validación, así como devolver la información de las descripción de los
productos en base a otra lista de validación. Tendremos la hoja Factura,
Detalle de facturas, tabla de Clientes y tabla de Productos.
En la segunda parte de este tutorial usaremos macros VBA para guardar
la información de cada factura en una hoja aparte e incrementar el número
de factura automáticamente.

Descargando la plantilla
Excel nos provee de miles de plantillas en línea que podemos
descargar y modificarlas a nuestro gusto. Para este proyecto de Factura
descargaremos una Factura sencilla las cual modificaremos añadiéndole
algunas fórmulas y validaciones de datos.
 No vamos a la pestaña Archivo > Nuevo.
 En la caja de texto Buscar plantillas en línea escribimos Factura
simple.
 Seleccionamos la plantilla Factura simple que calcula el total.

Figura 1. Descargamos una plantilla de Factura simple en línea.


Ver Video Factura en Excel Parte 1
Suscríbete al canal de EXCELeINFO en YouTube para aprender más
de Excel y macros.
Añadiendo columnas extras
La plantilla sólo cuenta con las columnas DESCRIPCIÓN e IMPORTE.
Para que sea una factura algo más completa, la modificaremos para tener
las columnas CÓDIGO, DESCRIPCIÓN, CANTIDAD e IMPORTE.
Figura 2. Modificamos la plantilla de la factura que descargamos en línea.
Agregar hojas nuevas
Agregaremos las siguientes 3 hojas al archivo para tener una factura más
dinámica:

 Detalle de facturas: En la parte 2 de este tutorial guardaremos en esta


hoja el detalle de cada factura.
 Clientes: En esta hoja tendremos una tabla de Clientes.
 Productos: En esta hoja tendremos una tabla de Productos.
Hoja Clientes
En la hoja Clientes tendremos una tabla ficticia con los datos de posibles
clientes a los que podemos generarles una factura, tendremos los datos
de:

 Nombre.
 Nombre de la empresa.
 Dirección.
 Ciudad, estado y CP.
 Teléfono.
Convertiremos este rango en Tabla para posteriormente usar el nombre
de los Clientes en una Lista de validación.

 Seleccionamos el rango.
 Presionamos [Control] + [T].
 Marcamos la opción La tabla tiene encabezados.
 En la pestaña Herramientas de tabla le ponemos el
nombre tblClientes a la tabla.

Figura 3. Tenemos una tabla de Clientes para nuestra factura.


Hoja Productos
En la hoja Productos estarán los productos que podremos facturar, de los
cuales tendremos la siguiente información:

 Código.
 Descripción.
 Precio unitario.
Siguiendo los mismos pasos que para la hoja Clientes, convertimos el dato
de los productos en tabla y a la tabla le pondremos el
nombre tblProductos.
Figura 4. Tenemos una tabla de productos para nuestra factura.
Devolver automáticamente los datos del
cliente a facturar
Ahora que tenemos una tabla de Clientes, en la carátula de la Factura, en
la sección Facturar a, insertaremos una lista de validación para mostrar el
nombre de los clientes y en la parte inferior se muestren los datos del
cliente elegido.

 Seleccionamos la celda B7.


 Nos dirigimos a la pestaña Datos > Validación de datos.
 Elegimos Permitir Lista y en origen ingresamos la
fórmula =INDIRECTO(“tblClientes[Nombre]”).
Obtendremos una Lista de validación con los nombres de los clientes.
Figura 5. Lista de validación para mostrar el nombre de los clientes.
Ahora haremos uso de la función BUSCARV para devolver los datos
correspondientes al cliente elegido en la lista de validación. Ingresamos la
siguiente fórmula en la celda B8 para devolver el nombre de la empresa:

=SI.ERROR(BUSCARV(B7,tblClientes[#Todo],2,0),”-“)

Para los valores posteriores sólo reemplazaremos el número 2 por el


número 3 hasta llegar al número 5 que es la columna donde está el valor
del teléfono.

Devolver automáticamente la descripción de


los productos
Así como en los clientes, para enlistar los códigos de los productos lo
haremos mediante una lista de validación.

 Seleccionamos el rango B13:B23.


 Nos dirigimos a la pestaña Datos > Validación de datos.
 Elegimos Permitir Lista y en origen ingresamos la
fórmula =INDIRECTO(“tblProductos[CODIGO]”).
Ahora que tenemos la lista de Códigos, en la columna C que la columna
DESCRIPCIÓN usaremos la función BUSCARV para devolver la
descripción de cada producto. Usaremos la fórmula:
=SI.ERROR(BUSCARV([@CÓDIGO],tblProductos[#Todo],2,0),””)

Figura 6. Con la función BUSCARV devolvemos la descripción del


producto.
Calcular el subtotal por producto
Ya ingresamos el código, se devolvió la descripción e ingresamos la
cantidad. Ahora nos falta calcular el IMPORTE de cada línea facturada. En
la columna IMPORTE ingresamos una fórmula que multiplicará la
cantidad de productos por el precio unitario del producto elegido.
Recordemos que el precio unitario lo tenemos en la tabla Productos.
Usamos la siguiente fórmula:
=SI.ERROR([@CANTIDAD]*BUSCARV([@CÓDIGO],tblProductos[#Todo
],3,0),””)

Figura 7. Con la función BUSARV devolvemos el precio unitario de cada


producto y lo multiplicamos por la cantidad.
Descarga el archivo de ejemplo
Factura simple que calcula el total – Parte 1 – EXCELeINFO.xlsx
Si te gustó este tutorial por favor regístrate en nuestra Lista de
correo y Suscríbete a nuestro canal de YouTube para que estés siempre
enterado de lo nuevo que publicamos.
Factura en Excel Parte 2 – Macro VBA para
guardar detalle de facturas y consecutivo
BY SERGIO ALEJANDRO CAMPOS · AUGUST 30, 2018

PREVIO: FACTURA EN EXCEL PARTE 1


En esta segunda entrega de nuestro Proyecto de Factura en
Excel haremos uso de una macro VBA que nos servirá para guardar
los datos de la factura en la hoja llamada Detalle de facturas. Asimismo
tendremos una fórmula que nos devolverá el último número de factura
registrado el cual nos servirá para tener un consecutivo de facturas.
Hoja Detalle de facturas
En la hoja llamada Detalle de facturas vamos a guardar los datos de cada
factura, los cuales se guardará con la macro que desarrollamos. Los datos
que se guardarán son:
 Fecha. Fecha de la factura.
 Consecutivo. El número de la factura.
 Factura a. El cliente al cual se generará la factura.
 Código. Código del producto.
 Descripción. La descripción del producto.
 Cantidad. El número de unidades vendidas.
 Importe. La multiplicación de la cantidad de unidades vendidas por el
precio unitario del producto.
Figura 1. Usando una macro VBA guardamos el detalle de cada factura
en otra hoja.
Es importante considerar que en la hoja Detalle de facturas guardaremos
tantas líneas como productos facturados. Por ejemplo, si de la factura
2 se vendieron dos productos, entonces se guardarán dos líneas con
la misma factura, pero cada línea será un producto. De esa manera será
más fácil realizar Reportes y Tablas dinámicas donde analicemos ventas
por Fecha, Cliente, Producto, etc...
Ver video Factura en Excel Parte 2
Suscríbete al canal de EXCELeINFO en YouTube para aprender más
de Excel y macros.
Consecutivo
Al momento de guardar los datos de una factura, en la hoja Detalle de
facturas, en la celda I1 tendremos una fórmula que nos detecta la última
factura guardada en la columna CONSECUTIVO. La fórmula es:
=DESREF(B1,CONTARA(A:A)-1,0,CONTARA(A:A),1)

La fórmula anterior es matricial por lo que debes usar la combinación de


teclas [Control] + [Shift] + [Enter].

Figura 2. Fórmula matricial para detectar la última celda con valores que
es la última factura guardada.
En la hoja Factura, en la celda E4 tendremos una fórmula que
simplemente realiza una suma de la última factura guardada más 1, y así
siempre tendremos un consecutivo de factura automático.

Figura 3. Tenemos el consecutivo de la factura siempre actualizado.


Botón Guardar
Para mandar llamar a la macro insertaremos un objeto de tipo
rectángulo que tendrá la etiqueta Guardar:
 Nos dirigimos a la pestaña Insertar > Ilustraciones > Formas >
Rectángulo.
 Damos clic derecho al rectángulo y elegimos Modificar texto.
Ingresamos Guardar.
 Damos clic derecho y elegimos Asignar macro.
 Elegimos la macro GuardarFactura.
 Aceptar.
Figura 4. Insertamos un rectángulo y le asignamos la macro
GuardarFactura.
Código VBA de la macro
La macro se llamará GuardarFactura y debe estar almacenada en un
Módulo normal.

Option Explicit

'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh
'http://blogs.itpro.es/exceleinfo

Sub GuardarFactura()
Dim NombreHoja As String
Dim HojaDestino As Range
Dim NuevaFila As Integer
Dim FilasFactura As Integer
Dim i As Integer
Dim j As Integer
Dim NumFactura As Integer

NombreHoja = "Detalle de facturas"


FilasFactura = Application.WorksheetFunction.CountA(Range("Factura[CÓDIGO]"))
NumFactura = ThisWorkbook.Sheets("Factura").Range("E4").Value
With ThisWorkbook.Sheets(NombreHoja)

For i = 1 To FilasFactura
Set HojaDestino = ThisWorkbook.Sheets(NombreHoja).Range("A1").CurrentRegion
NuevaFila = HojaDestino.Rows.Count + 1
.Cells(NuevaFila, 1).Value = Date
.Cells(NuevaFila, 2).Value = NumFactura
.Cells(NuevaFila, 3).Value = Range("valCliente").Value

For j = 1 To 4
.Cells(NuevaFila, j + 3).Value = ThisWorkbook.Sheets("Factura").Cells(12 + i, 1 + j)
Next j
Next i

End With

MsgBox "Alta exitosa", vbInformation, "EXCELeINFO"

End Sub

Descarga el archivo de ejemplo


Factura en Excel Parte 2 – Guardar detalle de facturas –
EXCELeINFO.zip
Si te gustó este tutorial por favor regístrate en nuestra Lista de
correo y Suscríbete a nuestro canal de YouTube para que estés
siempre enterado de lo nuevo que publicamos.

5 Fórmulas de Excel indispensables para


tu Trabajo
https://www.youtube.com/watch?v=JWfJzOlV4XE

You might also like