TECNOLOGÍA E INFORMÁTICA

Un cordial saludo para todos los chicos y chicas del Área de Tecnología e Informática de los grados séptimo a Undécimo de la Jornada Mañana en la Institución Educativa San Pedro Claver de Puerto Boyacá. En este pequeño espacio encontraran en Plan de área de la asignatura y la teoría vista en clase presencial para reforzar lo visto en ella.


BOTONES REGISTRAR-EDITAR-MODIFICAR-ELIMINAR.LIMPIAR Y BUSCAR EN VB EXCEL

 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!!!