8.
DISEÑO DE UNA APLICACIÓN PARA FACTURAR EN UNA
PEQUEÑA EMPRESA
Objetivo: Desarrollar un ejercicio completo para el control y registro de la FACTURACIÓN
para una pequeña empresa, aplicando herramientas vistas de Microsoft® Excel mediante el uso
Visual Basic para Aplicaciones, formatos, condicionales, fórmulas y funciones.
Primer paso: Diseño de la portada
Inicie con un documento en blanco en Microsoft® Excel y asigne los nombres PORTADA,
FACTURAR, REGISTRO y CONFIGURAR a cada hoja. La portada debe contener una
pequeña introducción sobre la aplicación y tres links (puede emplear hipervínculos) en forma de
botón, que deben dirigir al usuario a cada una de las hojas que hacen parte del libro (ver la
ilustración contigua).
Ilustración 116. Diseño de la portada para el ejercicio 8
Elimine las líneas de división y encabezados desmarcando la opción VER que se encuentra en la
ficha DISEÑO DE PÁGINA en Office 2007 o en la ficha VISTA para Office 2010.
Ilustración 117. Desmarque de las opciones de visualización de líneas de división y encabezados en Microsoft® Excel
2010
Una vez establecidos los hipervínculos, proceda a proteger la hoja desmarcando la opción
SELECCIONAR CELDAS BLOQUEADAS.
Ilustración 118. Protección de la portada para el ejercicio 8
Segundo paso: Diseño de la plantilla de registro de productos
En la hoja CONFIGURAR diseñe una tabla para el registro de productos. Dicha tabla debe
contener los siguientes campos (ver ilustración):
- Código
- Producto (admite máximo 20 caracteres)
- Precio
Ilustración 119. Tabla de registro de productos
Tercer paso: Formulario para el registro de productos
Inserte un formulario en Visual Basic para Aplicaciones, que contenga los campos mencionados en
el paso anterior como se muestra en la ilustración.
Ilustración 120. Formulario para el registro de productos
Programe el código del botón INGRESAR con la siguiente rutina. Observe que en este caso solo
se admitirán hasta 100 productos.
Private Sub CommandButton1_Click()
For I = 1 To 100
If Cells(I + 2, 2).Value = "" Then
Cells(I + 2, 2).Value = [Link]
Cells(I + 2, 3).Value = [Link]
Cells(I + 2, 4).Value = [Link]
Exit For
End If
Next
End Sub
Inserte la siguiente rutina para programar el botón BORRAR.
Private Sub CommandButton2_Click()
[Link] = ""
[Link] = ""
[Link] = ""
End Sub
Cuarto paso: Activar el formulario desde la hoja de cálculo
Desde la hoja de Microsoft® Excel donde se encuentra la tabla creada en el paso 2, agregue un
botón justo al lado de la tabla (Tipo Control Active X) llamado INGRESAR PRODUCTO, como
se observa en la siguiente ilustración.
Ilustración 121. Botón para la activación del formulario de registro de productos
Incluya el siguiente código en la programación del botón.
Private Sub CommandButton1_Click()
[Link]
End Sub
Quinto paso: Formato de la factura
Diseñe el formato para el registro de la factura de venta. Este formato admitirá máximo 5
productos. Incluya los siguientes campos:
- Consecutivo
- Cliente (admite máximo 20 caracteres)
- Identificación
- Código
- Producto
- Precio
- Cantidad
- Valor Total
- Subtotal
- Descuento
- IVA
- Total
Ilustración 122. Esquema general de una factura para el ejercicio 8
Sexto paso: Formulario para el registro de una factura
Diseñe un nuevo formulario (USERFOM2) que contenga los campos mencionados en el paso
anterior, exceptuando el consecutivo.
Ilustración 123. Formulario para el registro de facturas
Antes de pasar a programar cada botón, bloqueé los TEXTBOX correspondientes a
PRODUCTO y PRECIO (ya que estos son el resultado del registro de productos). Para realizar
el bloqueo de un componente, deberá seleccionarlo y colocar la opción de la propiedad
ENABLED en FALSE.
Ilustración 124. Propiedad Enabled de un control TextBox
Limite la longitud máxima aceptada para el nombre del cliente modificando la propiedad
MAXLENGTH en 20.
Ilustración 125. Propiedad Maxlehgth de un control TextBox
Séptimo paso: Activar el formulario desde la hoja de cálculo
Regrese a la hoja de Microsoft® Excel donde se encuentra la tabla creada en el paso 5, y agregué
un nuevo botón justo al lado de la tabla (Tipo Control Active X) llamado INGRESAR, como se
observa en la siguiente ilustración.
Ilustración 126. Botón para la activación del formulario de registro de facturas
Incluya el siguiente código en la programación del botón.
Private Sub CommandButton1_Click()
[Link]
End Sub
Octavo paso: Programación de los botones del formulario
Cada botón denominado OK del formulario USERFORM2, tendrá la función de buscar el
CÓDIGO digitado en la base de datos de registro de productos. Si el código es localizado, se
mostrarán en los TEXTBOX correspondientes, la información sobre el NOMBRE del producto y
su PRECIO. Por ejemplo, la programación para el primer botón es:
Private Sub CommandButton1_Click()
For I = 1 To 100
If [Link] = Sheets("Configurar").Cells(I + 2, 2) .Value Then
[Link] = Sheets("Configurar").Cells(I + 2, 3) .Value
[Link] = Sheets("Configurar").Cells(I + 2, 4) .Value Exit For
End If
Next
End Sub
Para el Segundo y tercer botón el código será:
Private Sub CommandButton2_Click()
For I = 1 To 100
If [Link] = Sheets("Configurar").Cells(I + 2, 2) .Value Then
[Link] = Sheets("Configurar").Cells(I + 2, 3) .Value
[Link] = Sheets("Configurar").Cells(I + 2, 4) .Value Exit For
End If
Next
End Sub
Private Sub CommandButton3_Click()
For I = 1 To 100
If [Link] = Sheets("Configurar").Cells(I + 2, 2).Value Then
[Link] = Sheets("Configurar").Cells(I + 2, 3).Value
[Link] = Sheets("Configurar").Cells(I + 2, 4) .Value Exit For
End If
Next
End Sub
Continúe con la programación de los botones 4 y 5, manteniendo la secuencia de los TEXTBOX.
Una vez que el usuario haya digitado la información a facturar, deberá pulsar en el botón
INGRESAR, cuya función es la de trasladar los datos del formulario a la hoja de cálculo. La
programación del botón se muestra a continuación.
Private Sub CommandButton6_Click()
Cells(9, 3).Value = [Link]
Cells(10, 3).Value = [Link]
Cells(13, 2).Value = [Link]
Cells(13, 3).Value = [Link]
Cells(13, 4).Value = [Link]
Cells(13, 5).Value = [Link]
Cells(14, 2).Value = [Link]
Cells(14, 3).Value = [Link]
Cells(14, 4).Value = [Link]
Cells(14, 5).Value = [Link]
Cells(15, 2).Value = [Link]
Cells(15, 3).Value = [Link]
Cells(15, 4).Value = [Link]
Cells(15, 5).Value = [Link]
Cells(16, 2).Value = [Link]
Cells(16, 3).Value = [Link]
Cells(16, 4).Value = [Link]
Cells(16, 5).Value = [Link]
Cells(17, 2).Value = [Link]
Cells(17, 3).Value = [Link]
Cells(17, 4).Value = [Link]
Cells(17, 5).Value = [Link]
Cells(2, 4).Value = Cells(2, 4).Value + 1 End Sub
Observe que la última línea de código ingresado incrementa el valor del CONSECUTIVO de la
factura en 1.
Noveno paso: Fórmulas para el cálculo de los campos resultado en la
Factura
Ingrese las fórmulas para el cálculo del valor total por artículo, subtotal, descuento, IVA y total.
Coloque un descuento del 10% e IVA del 16%.
Ilustración 127. Fórmulas para determinar el Valor Total, Subtotal, Descuento, Iva y Total
Decimo paso: Tabla resumen
Diseñe una tabla en la hoja REGISTRO para el ingreso de los totales por factura que incluya los
siguientes campos:
- Factura (equivalente al consecutivo de la factura) - Total
Ilustración 128. Tabla de resumen de facturas
Undécimo paso: Botón para completar el registro de facturas
Desde la hoja REGISTRO agregué un nuevo botón justo al lado de la tabla (Tipo Control Active
X) llamado ALMACENAR, como se observa en la siguiente ilustración.
Ilustración 129. Botón para el almacenaje de facturas en Microsoft® Excel
Digite el siguiente código:
Private Sub CommandButton2_Click()
For I = 1 To 100
If Sheets("Registro").Cells(I + 2, 2).Value = "" Then
Sheets("Registro").Cells(I + 2, 2).Value = Cells(2, 4).Value
Sheets("Registro").Cells(I + 2, 3).Value = Cells(22, 6).Value
Range("B13:E17").Select
[Link]
Exit For
End If
Next
End Sub
Un aspecto nuevo para el lector es el comando RANGE(“”__””).SELECT y
[Link]. El primero permite seleccionar un rango de celdas,
mientras que el segundo comando, permite borrar las celdas anteriormente seleccionadas.
Para probar el funcionamiento de la aplicación realice un ejercicio completo, iniciando con el
registro de varios productos.