1. Cree en documentos una carpeta con su nombre y su grado. Ejemplo: Mariana1101
2. Entre a Excel
3. Guarde en su carpeta el libro de calculo con el nombre MiFormulario (Sin espacios) y en tipo elija Libro de Excel habilitado para Macros y haga clic en Guardar
4. Cambie el nombre a la Hoja1 por BD. En la celda B3, digite CÓDIGO. En la celda C3, digite NOMBRE. En la celda D3, digite APELLIDO. En la celda E3, digite SEXO y en la celda F3, digite EDAD
5. Seleccione los encabezados y presione al mismo tiempo las teclas CTRL y T
Y en esta ventana hacemos clic en el Check , La tabla tiene encabezados y hacemos clic en Aceptar
6. Luego en la pestaña Diseño de tabla elegimos un Estilo de Tabla.
7. Le damos un nombre a la tabla, para ello haz clic en cualquier parte de la tabla, por ejemplo hacer clic en la celda c3. Luego vamos a Diseño de tabla y en la parte Izquierda superior donde dice nombre de la tabla escribimos CLIENTES
8. . Ahora vamos a la pestaña Vista y desactivamos el Check Lineas de cuadrícula, para que no se vean las cuadrícula
9. En la celda F2 ponemos una forma de rectángulo con las esquinas redondeadas y le agregamos el texto AGREGAR y el color que queramos
En la celda B2 escriba la fórmula =MAX(CLIENTES[CODIGO])+1
Luego ingrese un registro en la tabla
la hoja de excel debe quedar con la siguiente apariencia:
10. Vamos a la pestaña Programador y damos clic en Visual Basic
11. Damos clic en Insertar e insertamos un UserForm que tendrá la siguiente apariencia
le damos nombre a los botones de comando, poniéndoles la palabra Bt_ (Bt raya al piso) y seguido el nombre que se ve en el botón. Es decir el botón Modificar se llamará Bt_Modificar y así con los otros botones
El cuadro de lista en su propiedad Nombre le escribimos Lista y en su propiedad ColumnsWidths escriba: 40 pt;70 pt;70 pt;70 pt;30 pt para darle ancho a las columnas de la lista
La caja de texto que está arriba del cuadro de lista en su propiedad nombre le pondremos txt_busqueda
La caja de texto txt_codigo debe tener su propiedad enabled en False
Las cajas de texto de Codigo, Nombre, Apellido, Sexo y Edad se les pondrá en su nombre la palabra txt_ (Txt raya al piso) seguido del nombre de su etiqueta. (txt_codigo, txt_nombre, txt_apellido, txt_sexo y txt_edad).
Seleccionamos el formulario y le cambiamos el nombre en su propiedad Name escribimos miformulario
Ahora escribimos el siguiente código
Private Sub bt_agregar_Click()
nombrev = Me.txt_nombre.Value
apellidov = Me.txt_apellido.Value
edadv = Me.txt_codigo.Value
If nombrev = "" And apellidov = "" Then
MsgBox ("Ingrese el Nombre y el Apellido")
Exit Sub
End If
'Cuenta cuántas veces aparece el valor almacenado en la variable nombrev dentro de la columna C.
uno = WorksheetFunction.CountIf(Range("C:C"), nombrev)
'Cuenta cuántas veces aparece el valor almacenado en la variable apellidov dentro de la columna C.
dos = WorksheetFunction.CountIf(Range("D:D"), apellidov)
sumando = uno + dos
If sumando = 2 Then
MsgBox ("El Cliente ya existe")
Else
'Insertemos una nueva fila en la fila 4 y desplaza la fila original 4 (y todas las siguientes) hacia abajo.
Range("B4").EntireRow.Insert
Range("B4").Value = CInt(Me.txt_codigo)
Range("C4").Value = UCase(Me.txt_nombre)
Range("D4").Value = UCase(Me.txt_apellido)
Range("E4").Value = UCase(Me.txt_sexo)
Range("F4").Value = Val(Me.txt_edad)
txt_codigo.Value = Val(Range("B2").Value)
Me.txt_nombre.Value = Empty
Me.txt_apellido.Value = Empty
Me.txt_sexo.Value = Empty
Me.txt_edad.Value = Empty
Me.lista.RowSource = "CLIENTES"
Me.lista.ColumnCount = 5
End If
End Sub
Private Sub bt_busqueda_Click()
numerodedatos = Hoja1.Range("B" & Rows.Count).End(xlUp).Row
lista = Clear
lista.RowSource = Clear
y = 0
For fila = 4 To numerodedatos
nombre = ActiveSheet.Cells(fila, 3).Value
If UCase(nombre) Like "*" & UCase(Me.txt_busqueda.Value) & "*" Then
Me.lista.AddItem
Me.lista.List(y, 0) = ActiveSheet.Cells(fila, 2).Value
Me.lista.List(y, 1) = ActiveSheet.Cells(fila, 3).Value
Me.lista.List(y, 2) = ActiveSheet.Cells(fila, 4).Value
Me.lista.List(y, 3) = ActiveSheet.Cells(fila, 5).Value
Me.lista.List(y, 4) = ActiveSheet.Cells(fila, 6).Value
y = y + 1
End If
Next
End Sub
Private Sub bt_editar_Click()
If lista.ListIndex = -1 Then
MsgBox ("Seleccione un registro")
Else
miformulario.Height = 350
bt_agregar.Enabled = False
Me.bt_modificar.Enabled = True
End If
End Sub
Private Sub bt_eliminar_Click()
valor_buscado = Me.txt_codigo
datos = txt_nombre.Value & " " & txt_apellido.Value
On Error Resume Next
If lista.ListIndex = -1 Then
MsgBox ("seleccione un cliente")
Else
respuesta = Application.InputBox("Esta seguro de eliminar al Cliente: " & datos, "Ingrese clave")
If respuesta = "123" Then
Set fila = Sheets("BD").Range("B:B").Find(valor_buscado, lookat:=xlWhole)
linea = fila.Row
Range("B" & linea).EntireRow.Delete
End If
End If
End Sub
Private Sub bt_limpiar_Click()
miformulario.Height = 225
Me.txt_nombre.Value = Empty
Me.txt_apellido.Value = Empty
Me.txt_sexo.Value = Empty
Me.txt_edad.Value = Empty
Me.txt_busqueda.Value = Empty
End Sub
Private Sub bt_modificar_Click()
Dim fila As Object
Dim linea As Integer
valor_buscado = Me.txt_codigo
Set fila = Sheets("BD").Range("B:B").Find(valor_buscado, lookat:=xlWhole)
linea = fila.Row
Range("C" & linea).Value = Me.txt_nombre.Value
Range("D" & linea).Value = Me.txt_apellido.Value
Range("E" & linea).Value = Me.txt_sexo.Value
Range("F" & linea).Value = Me.txt_edad.Value
End Sub
Private Sub bt_registrar_Click()
miformulario.Height = 350
bt_modificar.Enabled = False
Me.txt_codigo.Value = Range("B2").Value
Me.txt_nombre.SetFocus
Me.bt_agregar.Enabled = True
Me.txt_nombre.Value = Empty
Me.txt_apellido.Value = Empty
Me.txt_sexo.Value = Empty
Me.txt_edad.Value = Empty
End Sub
Private Sub lista_Click()
Dim codigo As Integer
codigo = lista.List(lista.ListIndex, 0)
Me.txt_codigo.Value = codigo
Me.bt_agregar.Enabled = False
Me.bt_modificar.Enabled = True
End Sub
Private Sub txt_codigo_Change()
Dim codigo As Integer
codigo = CInt(txt_codigo.Value)
'Application.WorksheetFunction.VLookup, es la función BUSCARV (VLOOKUP) d Excel, usada desde VBA
Me.txt_nombre = Application.WorksheetFunction.VLookup(codigo, Sheets("BD").Range("B:F"), 2, 0)
Me.txt_apellido = Application.WorksheetFunction.VLookup(codigo, Sheets("BD").Range("B:F"), 3, 0)
Me.txt_sexo = Application.WorksheetFunction.VLookup(codigo, Sheets("BD").Range("B:F"), 4, 0)
Me.txt_edad = Application.WorksheetFunction.VLookup(codigo, Sheets("BD").Range("B:F"), 5, 0)
End Sub
Private Sub UserForm_Activate()
Me.lista.RowSource = "CLIENTES"
Me.lista.ColumnCount = 5
miformulario.Height = 225
lista.ColumnHeads = True
End Sub
ahora hacemos clic en Insertar e insertamos un módulo. Escribimos en ese módulo lo siguiente:
Sub llamar()
miformulario.Show
End Sub
Ahora vamos al libro de excel y seleccionamos La forma que dice Agregar y presionamos botón derecho, luego hacemos clic en Asignar Macro y hacemos clic en llamar.
No hay comentarios:
Publicar un comentario
No dejes de comentar!!!