¿Cómo hacer una Base de Datos con los botones Buscar, Guardar, Modificar y Eliminar en Excel con Macros?
Hola estimados seguidores de la página Excel Cuántico, nos volvemos a encontramos después de un buen tiempo, esta vez vamos aprender como crear una Base de Datos en excel con Macros (VBA - Excel), en esta primera parte la base de datos que crearemos tendrá los siguientes botones: Buscar, Guardar, Modificar y Eliminar, como nos caracterizamos lo desarrollaremos desde cero, así que pongamos manos a la obra.
Este será el resultado que obtendremos al final de esta primera parte del proyecto, ¿A que no se ve que esta muy COOL?.
Entonces no se diga más y comencemos,
Primero iniciamos diseñando nuestro formulario, para ello hacemos uso del "Cuadro de Herramientas" y utilizamos los diferentes "Controles", en esta oportunidad usaremos "Textbox", "Combobox" y "Botones de Comando", asimismo, agregaremos iconos a los botones para que se vean profesionales, este es el resultado del diseño del formulario.
Ahora nos toca cambiar el nombre (name) de cada control para que se mas fácil identificar al momento de programar. (Si no sabes donde hacerlo no te preocupes al final del articulo publicaremos el video tutorial).
Seguido vamos a ingresar la siguiente codificación en el evento "Initialize" del Userform, esto nos servirá para agregar datos al listado de los Combobox Grado y Sección.
------------------------------------------------------------------------------------------------------------------------
Private Sub UserForm_Initialize()
With Me.CmbGrado
.AddItem "1º", 0
.AddItem "2º", 1
.AddItem "3º", 2
.AddItem "4º", 3
.AddItem "5º", 4
.AddItem "6º", 5
End With
With Me.CmbSeccion
.AddItem "A", 0
.AddItem "B", 1
.AddItem "C", 2
.AddItem "D", 3
.AddItem "E", 4
End With
End Sub
--------------------------------------------------------------------------------------------------------------------------
Para seguir programando necesitamos hacer una pausa y hablar acerca del famoso "nREG", que como indique en varias ocasiones esta codificación la obtuve del canal "Excel y Mas", que por cierto es buenísimo. Con esta codificación nos ayudaremos a encontrar la ultima fila en blanco (pega la siguiente codificación en un "Módulo").
-------------------------------------------------------------------------------------------------------------------------
Option Explicit
Option Private Module
Public Function nReg(Hoja As Worksheet, nFila As Long, nColumna As Integer)
Do Until IsEmpty(Hoja.Cells(nFila, nColumna))
nFila = nFila + 1
Loop
nReg = nFila
End Function
------------------------------------------------------------------------------------------------------------------------
Continuando empezaremos a programar los "Botones de Comando", nuestro primer botón elegido a ser programado es......... "BUSCAR".
----------------------------------------------------------------------------------------------------------------------
Private Sub CmdBuscar_Click()
On Error Resume Next
Me.TxtDni.Text = Application.WorksheetFunction.VLookup(Me.TxtCodigo.Text, Hoja1.Range("A:F"), 2, 0)
Me.TxtApellidos.Text = Application.WorksheetFunction.VLookup(Me.TxtCodigo.Text, Hoja1.Range("A:F"), 3, 0)
Me.TxtNombres.Text = Application.WorksheetFunction.VLookup(Me.TxtCodigo.Text, Hoja1.Range("A:F"), 4, 0)
Me.CmbGrado.Text = Application.WorksheetFunction.VLookup(Me.TxtCodigo.Text, Hoja1.Range("A:F"), 5, 0)
Me.CmbSeccion.Text = Application.WorksheetFunction.VLookup(Me.TxtCodigo.Text, Hoja1.Range("A:F"), 6, 0)
Me.TxtCodigo.Enabled = False
End Sub
---------------------------------------------------------------------------------------------------------------------------
Ahora nuestro segundo botón elegido a ser programado es.............."GUARDAR". Que nos sirve para almacenar los datos del formulario en un hoja de excel.
---------------------------------------------------------------------------------------------------------------------------
Private Sub CmdGuardar_Click()
Dim uFila As Long
uFila = nReg(Hoja1, 4, 1)
Hoja1.Cells(uFila, 1) = Me.TxtCodigo.Text
Hoja1.Cells(uFila, 2) = Me.TxtDni.Text
Hoja1.Cells(uFila, 3) = Me.TxtApellidos.Text
Hoja1.Cells(uFila, 4) = Me.TxtNombres.Text
Hoja1.Cells(uFila, 5) = Me.CmbGrado.Text
Hoja1.Cells(uFila, 6) = Me.CmbSeccion.Text
Call Limpiar
Me.TxtCodigo.SetFocus
MsgBox ("Datos guardados con éxito"), vbInformation, "Excel Cuantico"
End Sub
-------------------------------------------------------------------------------------------------------------------------
Todavía queda "Botones de Comando" por programar, ahora es el turno del botón ................."MODIFICAR". Que nos sirve para modificar los datos guardados en la hoja de excel.
-------------------------------------------------------------------------------------------------------------------------
Private Sub CmdModificar_Click()
Dim uFila, X As Long
uFila = nReg(Hoja1, 4, 1) - 1
For X = 4 To uFila
If Me.TxtCodigo.Text = Hoja1.Cells(X, 1) Then
Hoja1.Cells(X, 2) = Me.TxtDni.Text
Hoja1.Cells(X, 3) = Me.TxtApellidos.Text
Hoja1.Cells(X, 4) = Me.TxtNombres.Text
Hoja1.Cells(X, 5) = Me.CmbGrado.Text
Hoja1.Cells(X, 6) = Me.CmbSeccion.Text
Exit For
End If
Next X
Call Limpiar
Me.TxtCodigo.Enabled = True
End Sub
---------------------------------------------------------------------------------------------------------------------------
Hey ya estamos cerca de terminar de programar todos lo botones, ahora sigamos con ............ exacto como lo pensaste, toca al botón "ELIMINAR". Con este botón podremos eliminar la información ingresada con los anteriores botones en nuestra hoja de excel.
---------------------------------------------------------------------------------------------------------------------------
Private Sub CmdEliminar_Click()
Dim uFila, X As Long
uFila = nReg(Hoja1, 4, 1) - 1
For X = 4 To uFila
If Me.TxtCodigo.Text = Hoja1.Cells(X, 1) Then
Hoja1.Cells(X, 1).EntireRow.Delete
Exit For
End If
Next X
Call Limpiar
Me.TxtCodigo.Enabled = True
End Sub
----------------------------------------------------------------------------------------------------------------------------
Y sin pensarlo llegamos al ultimo botón, que es el más sencillo de programar y el más utilizado, así es, es el botón "SALIR".
----------------------------------------------------------------------------------------------------------------------------
Private Sub CmdSalir_Click()
Unload Me
End Sub
---------------------------------------------------------------------------------------------------------------------------
Antes de mostrarles el video donde se explica detalladamente la programación de todo el formulario, debemos de agregar un procedimiento(Macro) con el nombre "Limpiar", que nos servirá para dejar todos los campos en blanco.
----------------------------------------------------------------------------------------------------------------------------
Sub Limpiar()
Me.TxtCodigo.Text = Empty
Me.TxtDni.Text = Empty
Me.TxtApellidos.Text = Empty
Me.TxtNombres.Text = Empty
Me.CmbGrado.Text = Empty
Me.CmbSeccion.Text = Empty
End Sub
-----------------------------------------------------------------------------------------------------------------------------
VER VÍDEO TUTORIAL
Aquí puedes ver el vídeo tutorial de "Como hacer una Base de Datos con los Botones "BUSCAR, GUARDAR, MODIFICAR y ELIMINAR". Si deseas encontrar más vídeos tutoriales presiona aquí.
DESCARGAR MATERIAL DE TRABAJO
Para descargar el material de trabajo PRESIONA AQUÍ o puedes encontrar en nuestra pestaña DESCARGAS
Si te gusto el presente articulo no te olvide de compartir en tus redes sociales, suscribirte al blog para que te llegue las novedades y suscribirte a nuestro canal de YouTube es completamente "GRATIS" SUSCRIBETE.
como haría para buscar por nombres y no por codigos?
ResponderEliminarExcelente turotial e informacion, me sirvio muchisimo, muchas gracias por compartir su conocimiento
ResponderEliminarcomo evito error guardar con espacio vasio
ResponderEliminarBuen dia, si los datos del campo "CÓDIGO" fueran números por qué el botón "BUSCAR" no trae los datos de los demás campos. ¿Cómo puedo solucionarlo?
ResponderEliminar