BIBLIOTECA VIRTUAL de Derecho, Economía y Ciencias Sociales

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í

 

11. DISEÑO DE UNA APLICACIÓN PARA GESTIONAR UN CENTRO DE MASCOTAS

Objetivo: Desarrollar un ejercicio para diseñar la aplicación ESCUELA DE MASCOTAS, como herramienta de apoyo para la gestión de una microempresa encargada del adiestramiento de perros domésticos.

Primer paso: Diseño de la portada de la aplicación

Diseñe una portada relacionada con la razón social de la empresa. Agregue imágenes alusivas al adestramiento de mascotas. Incluya un botón denominado CONTINUAR con un hipervínculo que dirija al usuario a una hoja de nombre FACTURAR.

En este caso, se eliminaron 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.

Proteja la hoja, desmarcando la opción SELECCIONAR CELDAS BLOQUEADAS, con el fin de evitar daños involuntarios en la portada.

Segundo paso: Diseño de la plantilla para la facturación

La aplicación contendrá 4 hojas: PORTADA, FACTURAR, ENTRENAMIENTO y REGISTRO. Antes de pasar al diseño de las tres últimas hojas, procederemos a crear un menú en común que permita el desplazamiento entre hojas. Inicie insertando tres botones, agregando un hipervínculo respectivo para cada hoja.

Seleccione toda la hoja, y copie su contenido para luego pegarlo en las hojas restantes. 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.

En la hoja FACTURAR, diseñe una tabla que contenga los siguientes campos:

Nombre Mascota (máximo 20 caracteres)

Código

Actividades Realizadas

Fecha

Valor Actividad

Subtotal

IVA

Valor Total

Estado

Selecciones las celdas de contenido de los campos (puede ayudarse con la tecla CONTROL para seleccionar celdas no consecutivas) y pulsando con el botón derecho del mouse sobre ellas, desmarque la opción BLOQUEADA que se encuentra en FORMATO DE CELDAS ficha PROTEGER.

Agregue las fórmulas necesarias para calcular el SUBTOTAL, IVA (equivalente al 16% del SUBTOTAL) y VALOR TOTAL. En el valor del campo ESTADO, escriba SIN CANCELAR.

Tercer paso: Diseño del formulario de Facturación

Diseñe un formulario que contenga los campos descritos en el paso anterior como se puede observar en la siguiente ilustración.

Proteja los TEXTBOX correspondientes a NOMBRE MASCOTA, ACTIVIDADES REALIZADAS, FECHA y VALOR, modificando la opción ENABLED a FALSE. Haga doble click en el botón ACEPTAR y escriba el siguiente código. La función de este botón es trasladar los datos del USERFORM1 a la hoja de cálculo.

Private Sub CommandButton2_Click()

Cells(3, 6).Value = TextBox1.Text

Cells(3, 12).Value = TextBox2.Text

Cells(6, 5).Value = TextBox3.Text

Cells(6, 8).Value = TextBox4.Text

Cells(6, 9).Value = TextBox5.Text

Cells(7, 5).Value = TextBox6.Text

Cells(7, 8).Value = TextBox7.Text

Cells(7, 9).Value = TextBox8.Text

Cells(8, 5).Value = TextBox9.Text

Cells(8, 8).Value = TextBox10.Text

Cells(8, 9).Value = TextBox11.Text

Cells(9, 5).Value = TextBox12.Text

Cells(9, 8).Value = TextBox13.Text

Cells(9, 9).Value = TextBox14.Text

Cells(14, 9).Value = Label6.Caption

TextBox1.Text = ""

TextBox2.Text = ""

TextBox3.Text = ""

TextBox4.Text = ""

TextBox5.Text = ""

TextBox6.Text = ""

TextBox7.Text = ""

TextBox8.Text = ""

TextBox9.Text = ""

TextBox10.Text = ""

TextBox11.Text = ""

TextBox12.Text = ""

TextBox13.Text = ""

TextBox14.Text = ""

Label6.Caption ="SIN CANCELAR"

End Sub

Nótese que se traslada el valor del CAPTION del componente LABEL6. Más adelante se incluirá el código del botón BUSCAR. Bloquearemos momentáneamente el botón ACEPTAR en el momento que se active la ventana. Para cumplir con esta tarea deberá hacer doble click en la ventana (USERFORM1), seleccionando el PROCEDIMIENTO ACTIVATE e ingresando el siguiente código.

Private Sub UserForm_Activate()

CommandButton2.Enabled = False

End Sub

Cuarto paso: Activar el formulario desde la hoja de cálculo

Regrese a la hoja de cálculo y haga doble click en el botón FACTURAR (ver ilustración) y escriba el siguiente código.

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Proteja la hoja desde la ficha REVISAR, desmarcando la opción SELECCIONAR CELDAS BLOQUEADAS.

Quinto paso: Plantilla y formularios para el registro de entrenamientos

Diseñe una tabla en la hoja ENTRENAMIENTO que contenga los siguientes campos:

Código

Nombre Mascota (máximo 20 caracteres)

Actividades 1

Fecha 1

Actividades 2

Fecha 2

Actividades 3

Fecha 3

Actividades 4

Fecha 5

Diríjase a la consola de Visual Basic y diseñe el siguiente formulario (USERFORM2).

En esta ventana se incluyeron 4 COMBOBOX para identificar las actividades. La programación de esto elementos se realizará al final del documento. Proteja el TEXTBOX correspondiente a NOMBRE MASCOTA modificando la opción ENABLED a FALSE. Haga doble click en el botón ACTUALIZAR y escriba el siguiente código. La función de este botón es trasladar o actualizar unos datos existentes del USERFORM2 a la hoja de cálculo.

Private Sub CommandButton3_Click()

ESCRITO = "NO"

If TextBox2.Text <> "" And TextBox1.Text <> "" And TextBox3 <> "" Then

ESCRITO = "SI"

Else

MsgBox ("DEBE DE ESCRIBIR POR LO MENOS UNA ACTIVIDAD")

End If

ENCONTRADO = "NO"

For I = 1 To 100

If TextBox2.Text = Cells(I + 2, 5).Value Then

ENCONTRADO = "SI"

Exit For

End If

Next

If ENCONTRADO = "NO" And ESCRITO = "SI" Then

For I = 1 To 100

If Cells(I + 2, 5).Value = "" Then

Cells(I + 2, 5).Value = TextBox2.Text

Cells(I + 2, 6).Value = TextBox1.Text

Cells(I + 2, 7).Value = ComboBox1.Text

Cells(I + 2, 8).Value = TextBox3.Text

Cells(I + 2, 9).Value = ComboBox2.Text

Cells(I + 2, 10).Value = TextBox4.Text

Cells(I + 2, 11).Value = ComboBox3.Text

Cells(I + 2, 12).Value = TextBox5.Text

Cells(I + 2, 13).Value = ComboBox4.Text

Cells(I + 2, 14).Value = TextBox6.Text

TextBox1.Text = ""

TextBox2.Text = ""

TextBox3.Text = ""

TextBox4.Text = ""

TextBox5.Text = ""

TextBox6.Text = ""

ComboBox1.Text = ""

ComboBox2.Text = ""

ComboBox3.Text = ""

ComboBox4.Text = ""

Exit For

End If

Next

End If

If ENCONTRADO = "SI" And ESCRITO = "SI" Then

For I = 1 To 100

If TextBox2.Text = Cells(I + 2, 5).Value Then

Cells(I + 2, 5).Value = TextBox2.Text

Cells(I + 2, 6).Value = TextBox1.Text

Cells(I + 2, 7).Value = ComboBox1.Text

Cells(I + 2, 8).Value = TextBox3.Text

Cells(I + 2, 9).Value = ComboBox2.Text

Cells(I + 2, 10).Value = TextBox4.Text

Cells(I + 2, 11).Value = ComboBox3.Text

Cells(I + 2, 12).Value = TextBox5.Text

Cells(I + 2, 13).Value = ComboBox4.Text

Cells(I + 2, 14).Value = TextBox6.Text

TextBox1.Text = ""

TextBox2.Text = ""

TextBox3.Text = ""

TextBox4.Text = ""

TextBox5.Text = ""

TextBox6.Text = ""

ComboBox1.Text = ""

ComboBox2.Text = ""

ComboBox3.Text = ""

ComboBox4.Text = ""

Exit For

End If

Next

End If

End Sub

Observe que en el código se declaran dos variables: ESCRITO y ENCONTRADO. La primera cambia su valor a SI siempre y cuando, exista un texto escrito en los TEXTBOX 1, 2 y 3. Esto evita que el usuario realice una modificación en la tabla sin haber escrito nada en el USERFORM. La segunda variable torna su valor SI en el momento en que se encuentre una coincidencia entre el campo CÓDIGO (TEXTBOX2) del USERFORM2 y la celda de la tabla correspondiente a dicho CÓDIGO. La rutina continúa con dos condicionales:

IF ENCONTRADO = "NO" AND ESCRITO = "SI" THEN ->> En caso de que los valores de las variables ENCONTRADO y ESCRITO sean NO y SI respectivamente, se procederá a agregar un nuevo registro.

IF ENCONTRADO = "SI" AND ESCRITO = "SI" THEN ->> En caso de que ambos valores de las variables sean SI, se procederá a actualizar un registro existente.

Antes de pasar a programar el botón BORRAR, adicionaremos un nuevo USERFORM (USERFOM3) para validar la eliminación de un registro con una CONTRASEÑA. Diseñe el formulario de acuerdo a la siguiente ilustración. Modifique las propiedades MAXLENGTH y PASSWORDCHAR del TEXTBOX1 en 4 y * respectivamente.

Regrese al formulario anterior (USERFORM2) y haga doble click en el botón BORRAR, agregando el siguiente código

Private Sub CommandButton2_Click()

UserForm3.Show

End Sub

Bloquearemos momentáneamente el botón BORRAR y ACTUALIZAR en el momento que se active la ventana. Para cumplir con esta tarea deberá hacer doble click en la ventana (USERFORM2), seleccionando el PROCEDIMIENTO ACTIVATE e ingresando el siguiente código.

Private Sub UserForm_Activate()

CommandButton2.Enabled = False

CommandButton3.Enabled = False

End Sub

Visualice el USERFORM3, y programe el código para el botón BORRAR.

Private Sub CommandButton1_Click()

If TextBox1 <> "1234" Then

MsgBox ("LA CONTRASEÑA NO ES CORRECTA")

Else

For I = 1 To 100

If UserForm2.TextBox2.Text = Cells(I + 2, 5).Value Then

Range(Cells(I + 2, 5), Cells(I + 2, 14)).Select

Selection.ClearContents

Range(Cells(I + 3, 5), Cells(102, 14)).Select

Selection.Cut

Cells(I + 2, 5).Select

ActiveSheet.Paste

Exit For

End If

Next

End If

End Sub

Inserte un botón en la hoja (ENTRENAMIENTO) denominado REGISTRAR y escriba el siguiente código en él.

Private Sub CommandButton1_Click()

UserForm2.Show

End Sub

No se le olvide desbloquear las celdas correspondientes a los registros de la tabla (seleccione un todas las filas de la tabla para desbloquearlas, en caso contrario el programa producirá un error) y proteger la hoja desmarcando la opción SELECCIONAR CELDAS BLOQUEADAS. El resultado final debería verse como en la siguiente ilustración.

Sexto paso: Plantilla y formularios para el registro de mascotas y actividades de entrenamiento

Diseñe dos tablas en la hoja REGISTRO correspondientes al registro de mascotas y actividades de entrenamiento. Incluya los siguientes campos como puede observarse en la siguiente ilustración:

Código

Nombre Mascota (máximo 20 caracteres)

Estado

Actividad (se aceptan máximo 4 actividades de máximo 10 caracteres)

Valor

Diseñe y programe el formulario (USERFORM4) para la primera tabla.

Registre el siguiente código en el botón INGRESAR.

Private Sub CommandButton2_Click()

REGISTRADO = "NO"

For I = 1 To 100

If TextBox2.Text = Cells(I + 2, 5).Value Then

MsgBox ("LA MASCOTA YA ESTA REGISTRADA")

REGISTRADO = "SI"

Exit For

End If

Next

If REGISTRADO = "NO" Then

For I = 1 To 100

If Cells(I + 2, 5).Value = "" Then

Cells(I + 2, 5).Value = TextBox2.Text

Cells(I + 2, 6).Value = TextBox1.Text

Cells(I + 2, 7).Value = "SIN CANCELAR"

TextBox1.Text = ""

TextBox2.Text = ""

Exit For

End If

Next

End If

End Sub

Registre el código en el botón BORRAR.

Private Sub CommandButton2_Click()

For I = 1 To 100

If TextBox2.Text = Cells(I + 2, 5).Value Then

Range(Cells(I + 2, 5), Cells(I + 2, 7)).Select

Selection.ClearContents

Range(Cells(I + 3, 5), Cells(102, 7)).Select

Selection.Cut

Cells(I + 2, 5).Select

ActiveSheet.Paste

Exit For

End If

Next

End Sub

Diseñe y programe el formulario (USERFORM5) para el registro de las actividades de entrenamiento.

Ingrese el código en botón REGISTRAR.

Private Sub CommandButton2_Click()

REGISTRADO = "NO"

For I = 1 To 4

If Cells(I + 2, 9).Value = TextBox1.Text Then

REGISTRADO = "SI"

Cells(I + 2, 9).Value = TextBox1.Text

Cells(I + 2, 10).Value = TextBox2.Text

TextBox1.Text =””

TextBox2.Text =””

Exit For

End If

Next

If REGISTRADO = "NO" Then

For I = 1 To 4

If Cells(I + 2, 9).Value = "" Then

REGISTRADO = "SI"

Cells(I + 2, 9).Value = TextBox1.Text

Cells(I + 2, 10).Value = TextBox2.Text

TextBox1.Text =””

TextBox2.Text =””

Exit For

End If

Next

End If

End Sub

La rutina anterior permite ingresar o actualizar el registro de una actividad, gracias a la variable REGISTRADO. Agregue dos botones en la hoja REGISTRO llamados REG. MASCOTA y REG. ACTIVIDAD con los siguientes códigos respectivos:

Private Sub CommandButton1_Click()

UserForm4.Show

End Sub

Private Sub CommandButton1_Click()

UserForm5.Show

End Sub

Desbloqueé las celdas correspondientes a los registros de ambas tablas (seleccione un todas las filas de las tablas para desbloquearlas, en caso contrario el programa producirá un error) y proteja la hoja desde la ficha REVISAR, desmarcando la opción SELECCIONAR CELDAS BLOQUEADAS.

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 (esto debe realizarlo a todas las hojas del libro).

Séptimo paso: Programación de los COMBOBOX del formulario USERFOM2 (REGISTRO DE ENTRENAMIENTOS)

Haga doble click en la ventana (USERFORM2), seleccionando el PROCEDIMIENTO ACTIVATE y adicione el siguiente código (se encuentra en color azul).

Private Sub UserForm_Activate()

CommandButton2.Enabled = False

CommandButton3.Enabled = False

ComboBox1.Clear

ComboBox1.AddItem (Sheets("REGISTRO").Cells(3, 9).Value)

ComboBox1.AddItem (Sheets("REGISTRO").Cells(4, 9).Value)

ComboBox1.AddItem (Sheets("REGISTRO").Cells(5, 9).Value)

ComboBox1.AddItem (Sheets("REGISTRO").Cells(6, 9).Value)

ComboBox2.Clear

ComboBox2.AddItem (Sheets("REGISTRO").Cells(3, 9).Value)

ComboBox2.AddItem (Sheets("REGISTRO").Cells(4, 9).Value)

ComboBox2.AddItem (Sheets("REGISTRO").Cells(5, 9).Value)

ComboBox2.AddItem (Sheets("REGISTRO").Cells(6, 9).Value)

ComboBox3.Clear

ComboBox3.AddItem (Sheets("REGISTRO").Cells(3, 9).Value)

ComboBox3.AddItem (Sheets("REGISTRO").Cells(4, 9).Value)

ComboBox3.AddItem (Sheets("REGISTRO").Cells(5, 9).Value)

ComboBox3.AddItem (Sheets("REGISTRO").Cells(6, 9).Value)

ComboBox4.Clear

ComboBox4.AddItem (Sheets("REGISTRO").Cells(3, 9).Value)

ComboBox4.AddItem (Sheets("REGISTRO").Cells(4, 9).Value)

ComboBox4.AddItem (Sheets("REGISTRO").Cells(5, 9).Value)

ComboBox4.AddItem (Sheets("REGISTRO").Cells(6, 9).Value)

End Sub

Con esta rutina incluiremos las actividades de entrenamiento en la hoja REGISTRO en cada COMBOBOX, facilitando su selección por parte del usuario. Realice una prueba del formulario.

Octavo paso: Programación de los botones denominados BUSCAR

Para finalizar, se programarán los botones BUSCAR de los USERFORM 1 y 2. Haga doble click en el botón BUSCAR del primer USERFORM e incluya el código:

Private Sub CommandButton1_Click()

ACIERTO = "NO"

For I = 1 To 100

If TextBox2.Text = Sheets("REGISTRO").Cells(I + 2, 5).Value And TextBox2.Text <> "" Then

ACIERTO = "SI"

TextBox1.Text = Sheets("REGISTRO").Cells(I + 2, 6).Value

Label6.Caption = Sheets("REGISTRO").Cells(I + 2, 7).Value

CommandButton2.Enabled = True

Exit For

End If

Next

If ACIERTO = "NO" Then

MsgBox ("LA MASCOTA NO SE ENCUENTRA REGISTRADA")

End If

If ACIERTO = "SI" Then

For I = 1 To 100

If TextBox2.Text = Sheets("ENTRENAMIENTO").Cells(I + 2, 5).Value Then

TextBox3.Text = Sheets("ENTRENAMIENTO").Cells(I + 2, 7).Value

TextBox4.Text = Sheets("ENTRENAMIENTO").Cells(I + 2, 8).Value

TextBox6.Text = Sheets("ENTRENAMIENTO").Cells(I + 2, 9).Value

TextBox7.Text = Sheets("ENTRENAMIENTO").Cells(I + 2, 10).Value

TextBox9.Text = Sheets("ENTRENAMIENTO").Cells(I + 2, 11).Value

TextBox10.Text = Sheets("ENTRENAMIENTO").Cells(I + 2, 12).Value

TextBox12.Text = Sheets("ENTRENAMIENTO").Cells(I + 2, 13).Value

TextBox13.Text = Sheets("ENTRENAMIENTO").Cells(I + 2, 14).Value

For J = 1 To 4

If TextBox3.Text = Sheets("REGISTRO").Cells(J + 2, 9) Then

TextBox5.Text = Sheets("REGISTRO").Cells(J + 2, 10)

End If

If TextBox6.Text = Sheets("REGISTRO").Cells(J + 2, 9) Then

TextBox8.Text = Sheets("REGISTRO").Cells(J + 2, 10)

End If

If TextBox9.Text = Sheets("REGISTRO").Cells(J + 2, 9) Then

TextBox11.Text = Sheets("REGISTRO").Cells(J + 2, 10)

End If

If TextBox12.Text = Sheets("REGISTRO").Cells(J + 2, 9) Then

TextBox14.Text = Sheets("REGISTRO").Cells(J + 2, 10)

End If

Next

Exit For

End If

Next

End If

End Sub

Si se encuentra la MASCOTA registrada, la variable ACIERTO cambiará su valor a SI. El fragmento de código siguiente (se ejecuta cuando la variable ACIERTO es SI) muestra el traslado de los datos de la hoja ENTRENAMIENTO a los TEXTBOX respectivos para las ACTIVIDADES REALIZADAS y FECHA. El código continúa verificando el valor de las actividades.

Pulse doble click en el botón BUSCAR del USERFORM2 ingresando el siguiente código.

Private Sub CommandButton1_Click()

ACIERTO = "NO"

For I = 1 To 100

If TextBox2.Text = Sheets("REGISTRO").Cells(I + 2, 5).Value And TextBox2.Text <> "" Then

TextBox1.Text = Sheets("REGISTRO").Cells(I + 2, 6).Value

CommandButton2.Enabled = True

CommandButton3.Enabled = True

ACIERTO = "SI"

Exit For

End If

Next

If ACIERTO = "NO" Then

MsgBox ("LA MASCOTA NO SE ENCUENTRA REGISTRADA")

End If

End Sub

Observe que una vez encontrado el registro de la mascota (ACIERTO = “SI”), se activan los botones BORRAR y ACTUALIZAR.

Para terminar con la programación general de la aplicación, vamos agregar un fragmento de código que actualice el estado de la mascota de SIN CANCELAR a CANCELADO. Agregue un botón a la hoja FACTURAR denominado CANCELAR e ingrese el siguiente código.

Private Sub CommandButton2_Click()

If Cells(14, 9).Value = "SIN CANCELAR" And Cells(3, 12).Value <> "" Then

Cells(14, 9).Value = "CANCELADO"

For I = 1 To 100

If Sheets("REGISTRO").Cells(I + 2, 5).Value = Cells(3, 12).Value Then

Sheets("REGISTRO").Cells(I + 2, 7).Value = "CANCELADO"

Range("E6:I9").Select

Selection.ClearContents

Exit For

End If

Next

Else

MsgBox ("LA FACTURA SE ENCUENTRA CANCELADA")

End If

End Sub

Noveno paso: Prueba Básica de la aplicación

1.Ingrese las siguientes actividades en la hoja REGISTRO (los precios regístrelos sin signos y puntuaciones)

Básica 1 -> $65.000

Básica 2 -> $75.000

Avanzado 1 -> $150.000

Avanzado 2 -> $120.000

2.Modifique el precio de la actividad Básica 2 a $70.000

3.Ingrese la siguientes mascotas con sus respectivos códigos

Homero -> 4321

Doggy -> 5552

Pulgoso -> 3950

Pastor -> 2001

4.Borre la mascota de código 5552 (el resultado preliminar de la hoja debería quedar como se muestra en la siguiente ilustración).

5.Registre los siguientes entrenamientos para las mascotas (en la hoja ENTRENAMIENTO):

Pulgoso -> 3950

Actividad Básica 1 (10-May-10) Avanzado 1 (15-Jun-10)

Pastor -> 2001

Actividad Básica 1 (10-May-10) Básica 2 (19-May-10)

Avanzado 1 (15-Jun-10)

6.En la hoja FACTURAR pulse el botón del mismo nombre y busque el código 2001. Luego pulse el botón ACEPTAR.

Verifique el valor total ($ 324.800).

7.Ahora pulse sobre el botón CANCELAR de la hoja y verifique que el estado de la cuenta pase a CANCELADO.


Grupo EUMEDNET de la Universidad de Málaga Mensajes cristianos

Venta, Reparación y Liberación de Teléfonos Móviles
Enciclopedia Virtual
Biblioteca Virtual
Servicios