Como crear un CRUD en #Excel con #VBA – Parte 4

¡Comparte nuestro contenido!

En la entrega anterior, apredimos a eliminar elementos de una tabla con VBA. En esta última entrega, haremos la última parte del CRUD: la modificación de un elemento, para ello, reutilizaremos algunas cosas de los formularios anteriores ¡Presionemos Alt + F11 para regresar a Visual Basic, es hora de trabajar!

Como crear un CRUD en Excel con VBA

Reciclemos algunos elementos

Vamos a reutilizar la ventana de eliminar que hicimos en la entrega anterior. Para eso, presionamos el botón derecho del ratón sobre el formulario llamado frmBaja y seleccionamos Exportar archivo.

Como crear un CRUD en Excel con VBA

Guardamos el archivo con el nombre frmCambios en la carpeta donde estemos trabajando.

Como crear un CRUD en Excel con VBA

Busquemos el archivo, lo seleccionamos y con el botón derecho del ratón obtenemos la opción Abrir con.

Como crear un CRUD en Excel con VBA

Vamos a editarlo con cualquier software de edición sencilla, por ejemplo: Wordpad.

Como crear un CRUD en Excel con VBA

Dentro del código generado por Excel, vamos a cambiar lo siguiente: el nombre interno del formulario (VB Name) de frmBaja a frmCambios, y al Caption que será “Actualizar Personas”. Observe la imagen con los cambios:

Como crear un CRUD en Excel con VBA

Guarde los cambios y regrese a Excel, es hora de importar el archivo. En la sección Formularios de nuestro proyecto, presionamos el botón derecho y elegimos Importar archivo.

Como crear un CRUD en Excel con VBA

Busquemos nuestro formulario, justo donde lo dejamos la última vez.

Y ahora ya forma parte del proyecto.

Como crear un CRUD en Excel con VBA

Modificando la parte reciclada

Es hora de abrir el formulario reciclado. Con un doble click lo abrimos y cambiemos la propiedad Caption de la etiqueta y el botón de comando.

Como crear un CRUD en Excel con VBA

Por los valores que muestra que se muestra a continuación:

Como crear un CRUD en Excel con VBA

Ahora, con un doble click al botón Modificar, es hora de ajustar el código. No vamos a borrarlo, solamente eliminaremos lo que no necesitemos. Ajustemos el código hasta que nos quede como sigue:

Como crear un CRUD en Excel con VBA

Hay que añadir el formulario de edición individual

Por supuesto, necesitamos el formulario para cada registro individual. En la sección Formularios de nuestro Administrador de proyectos, presionamos el botón derecho y seleccionamos Insertar, luego UserForm.

Como crear un CRUD en Excel con VBA

nuestro nuevo formulario se llamará frmCambiosIndividual y su propiedad Caption la establecemos a “Edición individual de datos”.

Como crear un CRUD en Excel con VBA

Necesitamos una variable de tipo Global para manipular el registro hallado, será un Integer con la posición del registro dentro de la tabla. Con un doble click en el único módulo que tenemos, añadimos el siguiente código:

Global hallado as Integer

Debe quedar justo arriba de todo el código que ya tiene nuestro módulo.

Como crear un CRUD en Excel con VBA

Regresemos al formulario que reciclamos, es hora de cambiar algunas cosas dentro del botón Modificar. Concretamente, necesitamos pasar el número de fila del registro encontrado de nuestro formulario a la variable global.

hallado = f

La variable f precisamente tiene ese número. Observe donde añadimos ese cambio:

Como crear un CRUD en Excel con VBA

Esto significa que la variable hallado debe tener un valor entero mayor a cero cuando hemos seleccionado un registro en nuestra ventana. Si esto es cierto, entonces necesitamos llamar a nuestro formulario individual y cerrar el actual.

if hallado > 0 then
   Unload me 'Cierra el formulario actual
   frmCambiosIndivisual.show 'Muestra el individual
end if

Esto lo haremos, justo al terminar el for, es decir, debajo de la instrucción Next.

Como crear un CRUD en Excel con VBA

Editando el fornulario individual

El formulario individual será de hecho, bastante similar al de Alta. Entonces, vamos a buscar el formulario de Alta (frmAlta) y nos copiamos todos sus objetos.

Como crear un CRUD en Excel con VBA

Y los pegamos en nuestro formulario individual (frmCambiosIndividual)

Como crear un CRUD en Excel con VBA

Lo primero que vamos a hacer en este formulario, es programar el método Activate del mismo. Este método se ejecuta cada vez que el formulario esta activo, es decir, frente a nuestros ojos y sin nada le estorbe o bloquee.

Como crear un CRUD en Excel con VBA

Creamos las variables para los campos de nuestro registro.

Dim nombre, sexo, telefono as String
Dim edad as Integer

Y les asignamos el registro hallado, usando la colección DataBodyRange de la tabla llamada “datos”, es importante notar que todo esto debe ir dentro de un Trim, ya que en algunas ocasiones Excel añade un pequeño espacio en blanco extra a los objetos de esta colección.

nombre = Trim(Hoja1.ListObjects("datos").DataBodyRange(hallado, 1))
edad = Trim(Hoja1.ListObjects("datos").DataBodyRange(hallado, 2))
sexo = Trim(Hoja1.ListObjects("datos").DataBodyRange(hallado, 3))
telefono = Trim(Hoja1.ListObjects("datos").DataBodyRange(hallado, 4))

Y luego pasamos el contenido de las variables, a los objetos:

txtNombre.Text = nombre
cmbEdad.Value = edad
cmbSexo.Value = sexo
txtTelefono.Text = telefono

Así nos debe quedar el código:

Como crear un CRUD en Excel con VBA

Para nuestro botón de Guardar datos, vamos a copiar el mismo código que tiene ese botón en el formulario frmAlta.

Como crear un CRUD en Excel con VBA

Y lo pegamos en el mismo botón pero dentro del formulario frmCambiosIndividual, le haremos algunos cambios mínimos, observe como debe quedar el código copiado:

Como crear un CRUD en Excel con VBA

Hagamos los cambios. Lo primero, es recuperar los datos de los objetos hacia las variables.

nombre = txtNombre.Text
edad = cmbEdad.Value
sexo = cmbSexo.Value
telefono = txtTelefono.Text

Definimos el objeto ListRow con el dato hallado.

Set fila = Hoja1.ListObjects("datos").ListRows(hallado)

Actualizamos cada columna con su dato correspondiente.

fila.Range(1).Value = nombre
fila.Range(2).Value = edad
fila.Range(3).Value = sexo
fila.Range(4).Value = telefono

Eliminamos el objeto ListRow de la memoria, ya que terminamos de usarlo. También enviamos el mensaje de confirmación.

Set fila = Nothing
MsgBox "¡Registro Actualizado, gracias!"

Limpiamos los objetos utilizados y cerramos el formulario.

txtNombre.Text = ""
cmbEdad.ListIndex = 0
cmbSexo.ListIndex = 0
txtTelefono.Text = ""
Unload Me

Este es el resultado.

Como crear un CRUD en Excel con VBA

Agregando la opción de Modificar a la Cinta de Opciones

Estamos cerca de finalizar. Igual que las otras opciones que fueron creadas en las pasadas entradas, necesitamos un botón personalizado en la Cinta de Opciones. Los primero es crear la subrutina en el módulo único que tenemos. Le llamaremos MostrarCambios.

Sub MostrarCambios()
   frmCambios.show
End Sub

Así debe quedar:

Como crear un CRUD en Excel con VBA

En nuestra Cinta llamada Personas, presionamos el botón derecho del ratón y elegimos Personalizar la Cinta de Opciones.

Como crear un CRUD en Excel con VBA

En la sección Comandos disponibles en, elegimos Macros. En la sección Pestañas principales seleccionamos CRUD.

Como crear un CRUD en Excel con VBA

Ahora, seleccionamos nuestra subrutina MostrarCambios y presionamos el botón Agregar.

Como crear un CRUD en Excel con VBA

Una vez añadida, la seleccionamos del otro lado y presionamos el botón Cambiar nombre.

Como crear un CRUD en Excel con VBA

El Nombre para mostrar será “Cambiar información”, elegimos un ícono de nuestra preferencia, y presionamos Aceptar.

Como crear un CRUD en Excel con VBA

De regreso a la ventana anterior, presionamos Aceptar nuevamente y con eso ya tenemos nuestro menú completo.

Como crear un CRUD en Excel con VBA

¡Es hora de probarlo todo!

Veamos el resultado de todo nuestro trabajo en acción (No olvide poner el video en fullscreen)

¿Te ha resultado? Déjanos saber en los comentarios aquí abajo, en nuestra cuenta de twitter @cablenaranja7 o en nuestra página de facebook.

¡Comparte nuestro contenido!

Israel García

Docente, IT Manager, Blogger & Developer. Escribo por diversión, educo por pasión. | Grandstanding is not my thing.

Podría también gustarte...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

shares