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:
- Archivo.
- Opciones.
- Personalizar Cinta de Opciones.
- 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.
- Luego agregaremos un Nueva Pestaña en la lista de Pestañas, cambiaremos el nombre si lo deseamos.
- 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
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 IntegerNroFila = 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