EXCEL Macros y Programación Vba, Crear Formulario: Buscar, Modificar, Nuevo y Grabar

0



MICROSOFT EXCEL
Macros y Programación Vba, Crear Formulario: Buscar, Modificar, Nuevo y Grabar

A continuación en esta sección mostrare códigos que nos ayudaran para la creación de nuestro formulario en Código Vba, las funcionalidades de nuestro formulario nos permitirán, buscar una palabra o texto en una columna seleccionada, modificar un registro seleccionado, agregar un nuevo registro y grabar los cambios. Además puedes activar la opción de Formulario que excel trae en su lista de Comandos.

Indice:

1.- Formulario Rápido

Si no sabes programar en Código Vba en Excel y necesitas un Formulario que te permita:
  • Realizar Búsquedas por Criterios.
  • Modificar Registros.
  • Eliminar.
  • Ingresar Nuevos Registros.
    Gracias a este formulario podras navegar por todo los registros de tu tabla y realizar modificaciones y busquedas en los campos que desees. Para ello debes activar la opción de Formulario en tu Hoja de Excel como te muestro a continuaciòn:

    1. Archivo.
    2. Opciones.
    3. Personalizar Cinta de Opciones.
    4. Desplegaremos en Comandos Disponibles y seleccionaremos "Comandos que no están en la lista de Opciones", en la lista de abajo buscaremos Formulario de manera alfabética.
    5. Luego agregaremos un Nueva Pestaña en la lista de Pestañas, cambiaremos el nombre si lo deseamos.
    6. Después Seleccionando el comando Formulario haremos clic en Agregar, y finalmente en Aceptar.
    Una vez que hallamos agregado nuestro Comando Formulario seleccionaremos dentro de nuestra tabla y nos dirigiremos a la pestaña agregada recientemente y haremos clic en Formulario.

    2.- Diseño de Formulario:

    Para buscar un texto o una palabra como lo hace el formulario de búsqueda de excel (Ctrl+b). Podemos copiar el siguiente código y pegarlo en nuestro Vba Project. Es te código permite buscar una  palabra o texto dentro de la hoja en la que nos encontramos.

    Private Sub BtnBuscar_Click()
    Cells.Find(What:="Texto a buscar", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
    :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
    False, SearchFormat:=False).Activate
    End Sub

    2.2.-Nuevo

    Si deseamos agregar un nuevo registro debemos posicionarnos en la última fila vacía de una columna para ello utilizaremos Selection.End(xlDown) para posicionarnos en la ultima fila; y junto a ello .Offset(1, 0).Select para correr una fila en la misma columna.

    Recuerda que:
    .Offset(fila, columna)
        fila: Numero de filas que se va a correr
        Columna: Numero de Columnas que se van a correr

    Private Sub BtnNuevo_Click()
    Range("E3").Select
    Selection.End(xlDown).Offset(1, 0).Select  
        
    NroFila = ActiveCell.RowNroColumna = ActiveCell.Column
    TFecha.Value = Cells(NroFila, 1)
    TUbicacion.Value = Cells(NroFila, 3)
    TCodigo.Value = Cells(NroFila, 4)
    TDescripcion.Value = Cells(NroFila, 5)
    TUnidad.Value = Cells(NroFila, 6)
    TStockseguridad.Value = Cells(NroFila, 7)
    End Sub 
     

    2.3.-Modificar.

    Antes de modificar un registro primero debemos extraer los valores del registro seleccionado a nuestros campos o TextBox correspondientes. Para ello guardaremos la fila ActiveCell.Row y columna ActiveCell.Column de nuestra celda activa a modificar.
    Luego igualaremos el valor de nuestros campos o TextBox al valor de cada celda que corresponden.
      Recuerda que:
      Cells(NroFila, NroColumna)
          NroFila: Corresponde al numero de Fila.
          NroColumna: Corresponde al Numero de Columna.

      Private Sub btnmodificar_Click()
      Dim NroFila, NroColumna As Integer
      NroFila = ActiveCell.Row
      NroColumna = ActiveCell.Column
      TFecha.Value = Cells(NroFila, 1) 
      TUbicacion.Value = Cells(NroFila, 3) 
      TCodigo.Value = Cells(NroFila, 4) 
      TDescripcion.Value = Cells(NroFila, 5) 
      TUnidad.Value = Cells(NroFila, 6) 
      TStockseguridad.Value = Cells(NroFila, 7)

      End Sub

      2.4.-Grabar

      En el siguiente código grabaremos los valores de nuestros TextBox a la celda que corresponda en nuestra tabla.

      ActiveCell.Row -  ActiveCell.Column
      Utilizaremos estos comandos para conocer la fila ActiveCell.Row y columna ActiveCell.Column de nuestra celda Activa.

      Private Sub btngrabar_Click()
      Dim NroFila, NroColumna As Integer 
      NroFila = ActiveCell.Row
      NroColumna = ActiveCell.Column
      Cells(NroFila, 1) = TFecha.Value
      Cells(NroFila, 3) = TUbicacion.Value
      Cells(NroFila, 4) = TCodigo.Value
      Cells(NroFila, 5) = TDescripcion.Value
      Cells(NroFila, 6) = TUnidad.Value
      Cells(NroFila, 7) = TStockseguridad.Value
      End Sub

      Entradas que pueden interesarte

      Sin comentarios