Vous êtes sur la page 1sur 7

GUA DE PRACTICA FORMULARIOS EXCEL - VBA

Objetivos
Elaborar formularios en Visual Basic utilizando Excel como software de trabajo.

Duracin:
2 horas

Desarrollo de la practica
Escenario

Ud es el responsable del registro de los clientes y proveedores de su organizacin y para ello


deber de elaborar una solucin en Excel para el registro de ellos utilizando los conceptos
aprendidos en clases sobre la creacin de formularios.

2 7 Formulario

Nombre:
3 8 frmMantenimiento

4 9

5 10

11

12 13 14 15

16 17
18

19

21
20

LISTA DE CONTROLES
Nro Tipo Nombre Caption OBSERVACION
Mantenimiento
Proveedores /
1 Etiqueta lblTitulo Cliente
ColumnCount: 2
Columnwidths: 0 pt;3 pt
2 Etiqueta lblTipo_PRO_CLI PRO/CLI RowSource: =Tipo_Pro_Cli
3 Etiqueta lblCodigo CODIGO
4 Etiqueta lblRUC RUC
5 Etiqueta lblNombre Nombre
6 Etiqueta lblDireccion Direccion
7 Cuadro Combinado cbotPro_Cli
8 Cuadro Texto txtCod
9 Cuadro Texto txtRUC
10 Cuadro Texto txtNom
11 Cuadro Texto txtDir
12 Boton Comando btnPrimero |<
13 Boton Comando btnAnterior <
14 Boton Comando btnSiguiente >
15 Boton Comando btnUltimo >|
16 Boton Comando btnNuevo NUEVO
17 Boton Comando btnGuardar GUARDAR
18 Boton Comando btnBuscar BUSCAR
19 Boton Comando btnSalir SALIR
20 Boton Comando btnModificar MODIFICAR
21 Boton Comando btnCancelar CANCELAR
Tipo de Letra: Verdana
Tamao: 14

Desarrollo
Pasos:
1.- Elaborar el formulario utilizando el diseador de formularios de Excel-VBA (tomar en cuenta el
nombre y los tipos de controles de la lista de controles)
2.-Reconocer el nombre de las listas ya nombradas en Excel (Tipo_Pro_CLi, lisProCli,
n_Reg_PRO_CLI, n_PRO, n_CLI, nPos, Modificar)
3.-Realizar la codificacin
4.-Insertar el botn en la hoja de Excel
5.-Probar el formulario.
Codificacin

Function num_ceros(n As Integer, ceros As Integer) As String


'Permite codificar los clientes y/o proveedores
Dim res As String
res = Trim(Str(n))
For i = (1 + Len(Trim(Str(n)))) To ceros
res = "0" & res
Next
num_ceros = res
End Function

Private Sub btnSalir_Click()


'Cierra el formulario
Range("Modificar") = False
End
End Sub

Private Sub btnPrimero_Click()


'controla el boton Primero para ir al primer registro
Range("nPos") = 1
mostrar (1)
End Sub

Private Sub btnAnterior_Click()


'controla el boton Anterior para ir al anterior registro
If Range("nPos") > 1 Then
Range("nPos") = Range("nPos") - 1
mostrar (Range("nPos"))
Else
MsgBox ("Se ha llegado al inicio del archivo")
End If
End Sub

Private Sub btnSiguiente_Click()


'controla el boton Siguiente para ir al Siguiente registro
If Range("nPos") < Range("n_Reg_PRO_CLI") Then
Range("nPos") = Range("nPos") + 1
mostrar (Range("nPos"))
Else
MsgBox ("Se ha llegado al final del archivo")
End If
End Sub
Private Sub btnUltimo_Click()
'controla el boton Ultimo para ir al ultimo registro
Range("nPos") = Range("n_Reg_PRO_CLI")
mostrar (Range("nPos"))
End Sub
Private Sub btnCancelar_Click()
'cancela la modificacion o creacion de un nuevo registro
btnUltimo_Click
mostrar_barra
oculta
Range("Modificar") = False
End Sub

Private Sub btnGuardar_Click()


'guarda una modificacion o nuevo registro
If Trim(txtCod) = "" Or Trim(txtRUC) = "" Or Trim(txtNom) = "" Or Trim(txtDir) = "" Then
MsgBox ("Falta completar datos no se puede guardar")
Else
If Range("Modificar") Then
guardar (Range("nPos") + 1)
Else
pos = Range("n_Reg_PRO_CLI") + 2
guardar (pos)
End If
End If
Range("Modificar") = False
End Sub

Sub guardar(n)
'Procedimiento que Permite guardar un registro enviando n como parametro
pos = n
Range("B" & pos) = Mid(txtCod, 2, 5)
Range("C" & pos) = txtRUC
Range("D" & pos) = txtNom
Range("E" & pos) = txtDir
Range("G" & pos) = Mid(txtCod, 1, 1)
cbotPro_Cli.Enabled = False
txtRUC.Enabled = False
txtNom.Enabled = False
txtDir.Enabled = False
btnBuscar.Enabled = True
btnGuardar.Enabled = False
btnNuevo.Enabled = True
btnCancelar.Enabled = False
btnModificar.Enabled = True
Range("nPos") = pos - 1
mostrar_barra
End Sub

Private Sub btnModificar_Click()


'controla el boton Modificar para Modificar un registro
Range("Modificar") = True
mostrar_control
End Sub

Private Sub btnNuevo_Click()


'Permite crear un nuevo registro
cbotPro_Cli.Text = "Selecionar"
txtCod = ""
txtRUC = ""
txtNom = ""
txtDir = ""
cbotPro_Cli.Enabled = True
txtRUC.Enabled = True
txtNom.Enabled = True
txtDir.Enabled = True
btnBuscar.Enabled = False
btnNuevo.Enabled = False
btnModificar.Enabled = False
btnGuardar.Enabled = True
btnCancelar.Enabled = True
oculta_barra
End Sub

Private Sub cbotPro_Cli_Change()


'Muestra en el formulario el codigo del proveedor o cliente
If cbotPro_Cli = "P" Then
txtCod = "P" & num_ceros(Range("n_PRO") + 1, 5)
Else
txtCod = "C" & num_ceros(Range("n_CLI") + 1, 5)
End If

End Sub

Sub mostrar(n As Integer)


'Permite mostrar en el formulario un registro
pos = n + 1
cbotPro_Cli.Text = IIf(Range("G" & pos) = "P", "Proveedor", "Cliente")
txtCod = Range("G" & pos) & Range("B" & pos)
txtRUC = Range("C" & pos)
txtNom = Range("D" & pos)
txtDir = Range("E" & pos)
End Sub

Private Sub UserForm_Initialize()


'Cuando el formulario se muestra estos comandos se ejecutan al inicio
mostrar (1)
Range("nPos") = 1
oculta
mostrar_barra
End Sub

Sub oculta()
'Oculta o deshabilita los controles
cbotPro_Cli.Enabled = False
txtRUC.Enabled = False
txtNom.Enabled = False
txtDir.Enabled = False

btnGuardar.Enabled = False
btnCancelar.Enabled = False
btnNuevo.Enabled = True
btnBuscar.Enabled = True
btnModificar.Enabled = True
End Sub

Sub mostrar_control()
'Muestra o habilita los controles
cbotPro_Cli.Enabled = True
txtRUC.Enabled = True
txtNom.Enabled = True
txtDir.Enabled = True
btnBuscar.Enabled = False
btnNuevo.Enabled = False
btnModificar.Enabled = False
btnGuardar.Enabled = True
btnCancelar.Enabled = True
End Sub

Sub mostrar_barra()
'muestra la barra de los cuatro botones primero, anterior, siguiente, ultimo
btnPrimero.Enabled = True
btnAnterior.Enabled = True
btnSiguiente.Enabled = True
btnUltimo.Enabled = True
End Sub

Sub oculta_barra()
'Oculta la barra de los cuatro botones primero, anterior, siguiente, ultimo
btnPrimero.Enabled = False
btnAnterior.Enabled = False
btnSiguiente.Enabled = False
btnUltimo.Enabled = False
End Sub

Bibliografa
Material distribuido en clases

Vous aimerez peut-être aussi