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.


MACROS1_1104

1.   Entre a Excel

2.   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

3.       Cambie el nombre a la Hoja1 por BD.  En la celda B3, digite CODIGO. En la celda C3, digite APELLIDOS.  En la celda D3, digite NOMBRES.  En la celda E3, digite GENERO y en la celda F3, digite DECRETO. En la celda G3, digite ESCALAFON y en la celda H3, digite AREA DE DESEMPEÑO.

4.       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 DOCENTES

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(DOCENTES[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:  60 pt;70 pt;70 pt;60 pt;60 pt;75 pt;80 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, Nombres, Apellidos, Genero, Decreto, escalafón y Area de desempeño  se les  pondrá en su nombre la palabra txt_ (Txt raya al piso) seguido del nombre de su etiqueta. (txt_codigo, txt_nombres, txt_apellidos, txt_genero,  txt_decreto, txt_escalafon y txt_areadesempeño).

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_nombres.Value


        apellidov = Me.txt_apellidos.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 Docente 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_nombres)

        Range("D4").Value = UCase(Me.txt_apellidos)

        Range("E4").Value = UCase(Me.txt_genero)

        Range("F4").Value = UCase(Me.txt_decreto)

        Range("G4").Value = UCase(Me.txt_escalafon)

        Range("H4").Value = UCase(Me.txt_areadesempeño)

        txt_codigo.Value = Val(Range("B2").Value)

          Me.txt_nombres.Value = Empty

        Me.txt_apellidos.Value = Empty

        Me.txt_genero.Value = Empty

        Me.txt_decreto.Value = Empty

        Me.txt_escalafon.Value = Empty

        Me.txt_areadesempeño.Value = Empty

        Me.lista.RowSource = "DOCENTES"

        Me.lista.ColumnCount = 6

     End If

    End Sub




     Private Sub bt_busqueda_Click()


    numerodedatos = Hoja1.Range("BD" & Rows.Count).End(xlUp).Row


    lista = Clear

     lista.RowSource = Clear

        y =  0  

       For fila = 6 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

              

              Me.lista.List(y, 5) = ActiveSheet.Cells(fila, 7).Value

                            

              Me.lista.List(y, 6) = ActiveSheet.Cells(fila, 8).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 = 426


         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_nombres.Value & " " & txt_apellidos.Value


          On Error Resume Next


          If lista.ListIndex = -1 Then


             MsgBox ("seleccione un Docente")


          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 = 208


      Me.txt_nombres.Value = Empty


       Me.txt_apellidos.Value = Empty


       Me.txt_genero.Value = Empty


       Me.txt_decreto.Value = Empty

       

       Me.txt_escalafon.Value = Empty

       

       Me.txt_areadesempeño.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_nombres.Value


         Range("D" & linea).Value = Me.txt_apellidos.Value


        Range("E" & linea).Value = Me.txt_genero.Value


        Range("F" & linea).Value = Me.txt_decreto.Value


        Range("G" & linea).Value = Me.txt_escalafon.Value


        Range("H" & linea).Value = Me.txt_areadesempeño.Value


     End Sub


      Private Sub bt_registrar_Click()

         miformulario.Height = 426


         bt_modificar.Enabled = False


         Me.txt_codigo.Value = Range("B2").Value


         Me.txt_nombres.SetFocus


         Me.bt_agregar.Enabled = True

         Me.txt_nombres.Value = Empty


         Me.txt_apellidos.Value = Empty


         Me.txt_genero.Value = Empty


         Me.txt_decreto.Value = Empty

         

         Me.txt_escalafon.Value = Empty

         

         Me.txt_areadesempeño.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_nombres = Application.WorksheetFunction.VLookup(codigo, Sheets("BD").Range("B:H"), 2, 0)


  Me.txt_apellidos = Application.WorksheetFunction.VLookup(codigo, Sheets("BD").Range("B:H"), 3, 0)


 Me.txt_genero = Application.WorksheetFunction.VLookup(codigo, Sheets("BD").Range("B:H"), 4, 0)


 Me.txt_decreto = Application.WorksheetFunction.VLookup(codigo, Sheets("BD").Range("B:H"), 5, 0)

 

 Me.txt_escalafon = Application.WorksheetFunction.VLookup(codigo, Sheets("BD").Range("B:H"), 6, 0)

 

 Me.txt_areadesempeño = Application.WorksheetFunction.VLookup(codigo, Sheets("BD").Range("B:H"), 7, 0)


       End Sub


      Private Sub UserForm_Activate()

          Me.lista.RowSource = "DOCENTES"

         Me.lista.ColumnCount = 7

         miformulario.Height = 426

         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.