DESARROLLO DE APLICACIONES EN MICROSOFT® EXCEL
Juan Carlos Vergara Schmalbach y Víctor Manuel Quesada Ibargüen
Esta página muestra parte del texto pero sin formato.
Puede bajarse el libro completo en PDF comprimido ZIP (162 páginas, 1.85 Mb) pulsando aquí
Objetivo: Desarrollar un ejercicio completo para el control y registro de la FACTURACIÓN para una pequeña empresa, aplicando herramientas vistas de MS® 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 MS® 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 .
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.
Una vez establecidos los hipervínculos, proceda a proteger la hoja desmarcando la opción SELECCIONAR CELDAS BLOQUEADAS.
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:
Código
Producto (admite máximo 20 caracteres)
Precio
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.
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 = TextBox1.Text
Cells(I + 2, 3).Value = TextBox2.Text
Cells(I + 2, 4).Value = TextBox3.Text
Exit For
End If
Next
End Sub
Inserte la siguiente rutina para programar el botón BORRAR.
Private Sub CommandButton2_Click()
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
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, agregué un botón justo al lado de la tabla (Tipo Control Active X) llamado INGRESAR PRODUCTO, como se observa en la siguiente ilustración.
Incluya el siguiente código en la programación del botón.
Private Sub CommandButton1_Click()
UserForm1.Show
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
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.
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.
Limite la longitud máxima aceptada para el nombre del cliente modificando la propiedad MAXLENGTH en 20.
Séptimo paso: Activar el formulario desde la hoja de cálculo
Regrese a la hoja de MS® 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.
Incluya el siguiente código en la programación del botón.
Private Sub CommandButton1_Click()
UserForm2.Show
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 TextBox3.Text = Sheets("Configurar").Cells(I + 2, 2) .Value Then
TextBox4.Text = Sheets("Configurar").Cells(I + 2, 3) .Value
TextBox5.Text = 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 TextBox7.Text = Sheets("Configurar").Cells(I + 2, 2) .Value Then
TextBox8.Text = Sheets("Configurar").Cells(I + 2, 3) .Value
TextBox9.Text = Sheets("Configurar").Cells(I + 2, 4) .Value
Exit For
End If
Next
End Sub
Private Sub CommandButton3_Click()
For I = 1 To 100
If TextBox11.Text = Sheets("Configurar").Cells(I + 2, 2).Value Then
TextBox12.Text = Sheets("Configurar").Cells(I + 2, 3).Value
TextBox13.Text = 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 = TextBox1.Text
Cells(10, 3).Value = TextBox2.Text
Cells(13, 2).Value = TextBox3.Text
Cells(13, 3).Value = TextBox4.Text
Cells(13, 4).Value = TextBox5.Text
Cells(13, 5).Value = TextBox6.Text
Cells(14, 2).Value = TextBox7.Text
Cells(14, 3).Value = TextBox8.Text
Cells(14, 4).Value = TextBox9.Text
Cells(14, 5).Value = TextBox10.Text
Cells(15, 2).Value = TextBox11.Text
Cells(15, 3).Value = TextBox12.Text
Cells(15, 4).Value = TextBox13.Text
Cells(15, 5).Value = TextBox14.Text
Cells(16, 2).Value = TextBox15.Text
Cells(16, 3).Value = TextBox16.Text
Cells(16, 4).Value = TextBox17.Text
Cells(16, 5).Value = TextBox18.Text
Cells(17, 2).Value = TextBox19.Text
Cells(17, 3).Value = TextBox20.Text
Cells(17, 4).Value = TextBox21.Text
Cells(17, 5).Value = TextBox22.Text
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%.
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
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.
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
Selection.ClearContents
Exit For
End If
Next
End Sub
Un aspecto nuevo para el lector es el comando RANGE(“”__””).SELECT y SELECTION.CLEARCONTENTS. 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.