You are on page 1of 2

Macros con Formularios PARTE 2

FORMULARIOS CON INTERACCIÓN DE PLANILLAS

En la hoja1 crearemos la siguiente planilla y además el siguiente formulario:

Identificación de los cuadros de texto en el formulario (verifica al seleccionar el cuadro de texto la propiedad
NAME)

CODIGO, RES, NOMBRE, SUELDO, DESC

DESCRIPCION DE LA LOGICA DE BUSQUEDA

El usuario cuando ejecute el formulario hará un clic en el botón BUSCAR AHORA (programaremos el botón).
Consideraciones para la programación.

1. Si el usuario no digitó el código a buscar se deberá desplegar el mensaje “Debe ingresar un código”.
2. Si ingresó un código se deberá buscar en la planilla, en la columna 1, partiendo de la fila 5. Se debe
considerar que en una búsqueda puede que el código se encuentre o no, para ello utilizaremos una
variable (en este caso la llamaremos INDI) a la cual le asignaremos dos posibles valores: no (lo cual
indica que no ha sido encontrado el código buscado) o si (se le asignará este valor cuando el código
haya sido encontrado). El ciclo de búsqueda deberá estar condicionado entonces por: llegar al final de
la planilla ( el código no existe) y al mismo tiempo que el indicador se encuentre en no.
3. Si el código no es encontrado desplegar el mensaje “Código no encontrado” y llenar la casilla RES con
la palabra no. Por el contrario, si el código se encontró se debe llenar el cuadro de texto RES con la
palabra si, y además se debe traer al formulario los datos correspondientes (Nombre y sueldo).
4. El cuadro DESC se debe llenar con el cálculo del 21% del sueldo

Programación del botón BUSCAR AHORA

Haga doble clic sobre el botón y digite las sentencias indicadas

Private Sub CommandButton1_Click()


Worksheets("hoja1").Activate
If CODIGO.Text = "" Then
MsgBox ("Debe ingresar un codigo")
Else
f=5
indi = "no"

Eduardo Briceño G. 1
Do While Cells(f, 1) <> "" And indi = "no"
If CODIGO.Text = Cells(f, 1) Then
indi = "si"
Else
f=f+1
End If
Loop
If indi = "no" Then
MsgBox ("CODIGO NO ENCONTRADO")
RES.Text = "no"
Else
NOMBRE.Text = Cells(f, 2)
SUELDO.Text = Cells(f, 3)
DESC.Text = SUELDO.Text * 0.21
RES.Text = "si"

End If
End If
End Sub

Observación: La sentencia Worksheets("hoja1").Activate active la hoja con la cual deseamos trabajar


(en este caso es la hoja1).

Programación del botón TERMINAR

Haga doble clic en el botón y en la macro digite la sentencia END.

Private Sub CommandButton2_Click()


End
End Sub

Programación del botón LIMPIAR CASILLAS

Haga doble clic en el botón y crear la siguiente macro:

Private Sub CommandButton3_Click()


CODIGO.Text = ""
RES.Text = ""
NOMBRE.Text = ""
SUELDO.Text = ""
DESC.Text = ""
End Sub

Eduardo Briceño G. 2

You might also like