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 para el diseño de un LISTÍN TELEFÓNICO con las funciones básicas para el ingreso, búsqueda, edición, eliminación e impresión de registros.
Primer paso: Diseño de la plantilla
Inicie este ejemplo con un documento en blanco en MS® Excel y diseñe una tabla que contenga los siguientes campos:
Número (No.)
Nombre(s) (Máximo 20 caracteres)
Apellidos (Máximo 20 caracteres)
Teléfono 1
Teléfono 2
Incluya dos botones (Tipo Control Active X) llamados REGISTRO e IMPRESIÓN.
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.
Además, se utilizó la opción de inmovilización de paneles para fijar el encabezado, botones y campos de la tabla.
Segundo paso: Diseño del formulario
Diseñe un formulario que contenga los campos mencionados en el paso anterior y agregue los botones INGRESAR, BUSCAR, EDITAR y ELIMINAR.
Modifique la propiedad MAXLENGTH de los TEXTBOX 1 y 2 para que admitan solo 20 caracteres. Haga doble click en el botón INGRESAR e incluya la siguiente rutina
Private Sub CommandButton1_Click()
For I = 1 To 100
If Cells(I + 10, 2).Value = "" Then
Cells(I + 10, 2).Value = I
Cells(I + 10, 3).Value = TextBox1.Text
Cells(I + 10, 4).Value = TextBox2.Text
Cells(I + 10, 5).Value = TextBox3.Text
Cells(I + 10, 6).Value = TextBox4.Text
Cells(I + 10, 7).Value = TextBox5.Text
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
Exit For
End If
Next
End Sub
Observe que una vez ingresados los datos de la persona, se borrarán los TEXTBOX de forma automática (esto se logra empleando la línea de código TEXTBOX#.TEXT = “”). Programe ahora el botón BUSCAR digitando la siguiente rutina. Esta secuencia indica una búsqueda por NOMBRE(S) de la persona.
Private Sub CommandButton2_Click()
For I = 1 To 100
If Cells(I + 10, 3).Value = TextBox1.Text Then
TextBox2.Text = Cells(I + 10, 4).Value
TextBox3.Text = Cells(I + 10, 5).Value
TextBox4.Text = Cells(I + 10, 6).Value
TextBox5.Text = Cells(I + 10, 7).Value
Exit For
End If
Next
End Sub
El botón EDITAR tiene la función de actualizar un cambio efectuado en los datos de la persona. La limitación de la actualización de los datos radica en que el campo NOMBRE (base de la búsqueda) no podrá ser modificado.
Private Sub CommandButton3_Click()
For I = 1 To 100
If Cells(I + 10, 3).Value = TextBox1.Text Then
Cells(I + 10, 4).Value = TextBox2.Text
Cells(I + 10, 5).Value = TextBox3.Text
Cells(I + 10, 6).Value = TextBox4.Text
Cells(I + 10, 7).Value = TextBox5.Text
Exit For
End If
Next
End Sub
En el botón ELIMINAR incluiremos una nueva rutina para eliminar una fila donde se encuentre un registro y restablecer el consecutivo de las filas.
Private Sub CommandButton4_Click()
For I = 1 To 100
If Cells(I + 10, 3).Value = TextBox1.Text Then
Cells(I + 10, 3).Select
Selection.EntireRow.Delete
Exit For
End If
Next
For I = 1 To 100
If Cells(I + 10, 2).Value <> "" Then
Cells(I + 10, 2).Value = I
End If
Next
End Sub
El primer ciclo PARA, detecta la coincidencia del nombre de la persona la cual se desea borrar del listín, y mediante el código SELECTION.ENTIREROW.DELETE se elimina la fila completa. El segundo ciclo, actualiza el consecutivo (No.) de cada registro, buscando aquellas celdas que no están vacías (CELLS(I + 10, 2).VALUE <> "") y actualizando su valor con la variable contadora I del ciclo PARA (este ciclo no incluye el comando EXIT FOR – SALIR DEL CICLO PARA).
Tercer 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 REGISTRO e ingrese el siguiente código.
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
Realice una prueba rápida sobre el funcionamiento de cada botón del formulario.
Cuarto paso: Opción de impresión de la plantilla
Para poder imprimir una hoja de cálculo en MS® Excel, incluya el siguiente código en el botón IMPRIMIR.
Private Sub CommandButton2_Click()
ActiveSheet.PrintOut
End Sub
Antes de imprimir una hoja, ajuste las opciones de impresión y visualización.