Aprende a crear una base de datos en Excel paso a paso usando VBA y macros, con botones para guardar, Buscar, Actualizar, Eliminar, Cerrar y Limpiar.
Todos los pasos están explicados con detalles, sólo sigue cada una de las indicaciones que se describen. Al final de esta entrada, verás un enlace para descargar el archivo de ejemplo y así poder ejecutarlo en tu propia pc.
GUARDAR DOCUMENTO HABILITADO PARA MACROS.
Antes de comenzar a crear una base de datos en Excel, primero debemos guardarlo como documento habilitado para macros, para ello realizamos los siguientes pasos:
- Ir a la pestaña Archivo.
- Clic en el opción Guardar como
- Elige la ubicación donde guardarás el documento.
- Escribe el nombre que tendrá el documento Excel.
- Debajo de nombre, haz un clic en la lista desplegable y elegir Libro de Excel habilitado para macros.
CREANDO LA TABLA
Dentro de la hoja de cálculo, crearemos una tabla donde se guardarán los datos que ingresamos. Para explicar mejor los pasos, usaremos la siguiente imagen como ejemplo:
Como se puede ver en la imagen, la tabla sólo tiene encabezados, y es precisamente eso lo único que crearemos, ya que trabajeremos con una base de datos vacío, en caso que tengas una tabla con muchos registros ingresados no te preocipes, los pasos que realizaremos de aquí en adelante son similares.
Crear los encabezados
Para este ejemplo crearemos los encabezados de la tabla a partir de la celda A5 hasta E5.
La tabla tendrá los siguientes encabezados: ID, NOMBRE, APELLIDO PATERNO, APELLIDO MATERNO y GÉNERO.
Después de crear los encabezados, comenzamos a dar formato a las celdas y texto de los encabezados, para este ejemplo aplicamos los siguientes formatos:
- Texto de los encabezados: negrita, color blanco, tipo de letra Calibri y tamaño 11.
- Para las celdas: selecciona todas las celdas con un clic sostenido, ir a Inicio y en el ícono de bordes elegir todos los bordes. Para elegir el tamaño, vuelve a seleccionar todas las celdas de los encabezados, ir a la pestaña Inicio, en la sección de celdas haz un clic en el ícono de Formato y elegir Alto de fila, en el recuadro en blanco escribe 20 y clic en Aceptar.
Crear botón para llamar macro
En la parte superior de la tabla crearemos un botón para ver el formulario, para realizarlo sigue los siguientes pasos:
- Ir a la pestaña Insertar.
- Clic en Ilustraciones, vueleve hacer un clic en sobre Formas.
- Selecciona la forma que deseas.
- Dentro de la forma agregar texto y color de relleno, dale formato al botón según tu preferencia.
ACTIVAR PESTAÑA PROGRAMADOR O DESARROLLADOR
En caso que no tengas activado la pestaña Programador o desarrollador en tu programa Excel, lo que tienes que hacer es lo siguiente:
- Ir a la pestaña Archivo.
- Clic en opciones que se encuentra en la parte inferior del panel color verde.
- En la ventana de opciones de Excel, haz un clic en Personalizar cinta de opciones.
- Ir a la primera lista de opciones, en comandos disponibles, selecciona Programador/desarrollador, haz un clic en Agregar y clic en el botón Aceptar.
- En caso que la pestaña Programador/Desarrollador esté agregado, pero no activo, sólo marca la casilla y haz un clic en el botón de Aceptar.
CREAR EL FORMULARIO EN VB
- Ir a la pestaña Programador/Desarrollador.
- En la sección de Código, haz un clic en el ícono de Visual Basic.
- En la ventana de Visua Basic, haz un clic en la lista desplegable del ícono de Insertar UserForm (se encuentra en la barra de herramientas, debajo de las pestaña Archivo) y selecciona UserForm.
- Para comenzar a crear el formulario, deberás hacer uso del Cuadro de herramientas.
Para crear el formulario
Dentro del formulario insertaremos 5 etiquetas, 5 cuadro de textos, 2 botones de opción, 1 cuadro de lista y 6 botones.
Para las etiquetas:
Propiedades de la Eiqueta 1:
- Name: Label1
- Caption: ID:
Propiedades de la Etiqueta 2:
- Name: Label2
- Caption: NOMBRES:
Las propiedades de la Etiqueta 3:
- Name: Label3
- Caption: APELLIDO PATERNO:
Propiedades de la Etiqueta 4:
- Name: Label4
- Caption: APELLIDO MATERNO:
Propiedades de la Etiqueta 5:
- Name: Label5
- Caption: GÉNERO:
Para los cuadros de Texto
Las propiedades para el cuadro de texto 1
- Name: TextBox1
- Enabled: False
Propiedades para el cuadro de texto 2
- Name: TextBox2
Propiedades para el cuadro de texto 3
- Name: TextBox3
Las propiedades para el cuadro de texto 4
- Name: TextBox4
Propiedades para el cuadro de texto 5
- Name: TextBox5
Para los Botones de Opción
Propiedades para el Botón de Opción 1
- Name: Opt1
- Caption: Masculino
Propiedades para el Botón de Opción 2
- Name: Opt2
- Caption: Femenino
Para el cuadro de lista
- Name: ListBox1
- ColumnCount: 5
- RowSource: A5:F67543
Para los Botones
Las Propiedades para el botón 1
- Name: btnGuardar
- Caption: Guardar
Propiedades para el botón 2
- Name: btnLimpiar
- Caption: Limpiar
Propiedades para el botón 3
- Name: btnCerrar
- Caption: Cerrar
Las Propiedades para el botón 4
- Name: btnBuscar
- Caption: Buscar
Propiedades para el botón 5
- Name: btnActualizar
- Caption: Actualizar
- Visible: False
Propiedades para el botón 6
- Name: btnEliminar
- Caption: Eliminar
- Visible: False
ESCRIBIR EL CÓDIGO EN VISUAL BASIC
Para comenzar a escribir el código correspondiente para cada elemento del formulario, tienes que hacer dos veces clic sobre cada uno de ellos.
Código para el Formulario
- Haz dos veces clic en un espacio vacío o enblanco del formulario.
- En la ventana de código, selecciona en la primera lista desplegable: UserForm y en la segunda lista desplegable selecciona: Initialize
- Escribe el siguiente código:
Private Sub UserForm_Initialize()
TextBox1 = Application.WorksheetFunction.Max(Hoja1.Range("A:A")) + 1
End Sub
Código para el botón Guardar
Private Sub btnGuardar_Click()
If Len(TextBox2) = 0 Then
MsgBox "Ingrese el Nombre"
TextBox2.SetFocus
Exit Sub
End If
If Len(TextBox3) = 0 Then
MsgBox "Ingrese el Apellido Paterno"
TextBox3.SetFocus
Exit Sub
End If
If Len(TextBox4) = 0 Then
MsgBox "Ingrese el Apellido Materno"
TextBox4.SetFocus
Exit Sub
End If
Dim x As Long
Dim y As Worksheet
Set y = Hoja1
x = y.Range("A" & Rows.Count).End(xlUp).Row + 1
With y
.Cells(x, 1).Value = TextBox1.Text
.Cells(x, 2).Value = TextBox2.Text
.Cells(x, 3).Value = TextBox3.Text
.Cells(x, 4).Value = TextBox4.Text
If Opt1.Value = True Then
.Cells(x, 5).Value = "Masculino"
End If
If Opt2.Value = True Then
.Cells(x, 5).Value = "Femenino"
End If
End With
MsgBox "Se guardó exitosamente"
Unload Me
UserForm1.Show
End Sub
El Código para el botón Limpiar
Private Sub btnLimpiar_Click()
Unload Me
UserForm1.Show
End Sub
Código para el botón Cerrar
Private Sub btnCerrar_Click()
Unload Me
End Sub
Código para el botón Buscar
Private Sub btnBuscar_Click()
btnGuardar.Enabled = False
Dim x As Long
Dim y As Long
x = Hoja1.Range("A" & Rows.Count).End(xlUp).Row
For y = 6 To x
If Hoja1.Cells(y, 1).Value = TextBox5.Text Then
TextBox1 = Hoja1.Cells(y, 1).Value
TextBox2 = Hoja1.Cells(y, 2).Value
TextBox3 = Hoja1.Cells(y, 3).Value
TextBox4 = Hoja1.Cells(y, 4).Value
If Hoja1.Cells(y, 5).Value = "Masculino" Then
Opt1.Value = True
End If
If Hoja1.Cells(y, 5).Value = "Femenino" Then
Opt2.Value = True
End If
btnActualizar.Visible = True
Me.btnEliminar.Visible = True
End If
Next y
End Sub
El Código para el botón Actualizar
Private Sub btnActualizar_Click()
Dim x As Long
Dim y As Long
x = Hoja1.Range("A" & Rows.Count).End(xlUp).Row
For y = 6 To x
If Hoja1.Cells(y, 1).Value = TextBox5.Text Then
Hoja1.Cells(y, 1).Value = TextBox1.Text
Hoja1.Cells(y, 2).Value = TextBox2.Text
Hoja1.Cells(y, 3).Value = TextBox3.Text
Hoja1.Cells(y, 4).Value = TextBox4.Text
If Opt1.Value = True Then
Hoja1.Cells(y, 5).Value = "Masculino"
End If
If Opt2.Value = True Then
Hoja1.Cells(y, 5).Value = "Femenino"
End If
End If
Next y
Me.btnActualizar.Visible = False
Me.btnEliminar.Visible = False
MsgBox "Se actualizó exitosamente"
Call btnLimpiar_Click
End Sub
Código para el botón Eliminar
Private Sub btnEliminar_Click()
Dim x As Long
Dim y As Long
x = Hoja1.Range("A" & Rows.Count).End(xlUp).Row
For y = 6 To x
If Hoja1.Cells(y, 1).Value = TextBox5.Text Then
Rows(y).Delete shift:=xlUp
End If
Next y
Me.btnEliminar.Visible = False
Me.btnActualizar.Visible = False
MsgBox "Se eliminó exitosamente"
Call btnLimpiar_Click
End Sub
Código para ListBox1
Private Sub ListBox1_Click()
TextBox5 = ListBox1.Column(0)
End Sub
EL Código para TextBox2
Private Sub TextBox2_Change()
TextBox2 = UCase(Me.TextBox2.Text)
End Sub
Código para TextBox3
Private Sub TextBox3_Change()
TextBox3 = UCase(Me.TextBox3.Text)
End Sub
Código para TextBox4
Private Sub TextBox4_Change()
TextBox4 = UCase(Me.TextBox4.Text)
End Sub
CREAR MÓDULO PARA LA MACRO
Finalmente sólo nos falta crear el módulo para poder llamar a la macro desde nuestra hoja de cálculo, para ello realizamos los siguientes pasos:
- En la ventana de Visua Basic, haz un clic en la lista desplegable del ícono de Insertar UserForm (se encuentra en la barra de herramientas, debajo de las pestaña Archivo).
- Selecciona Módulo.
- Dos veces clic sobre Módulo para insertar el siguiente código.
Sub MostrarFormulario()
UserForm1.Show
End Sub
LLAMAR A LA MACRO DESDE UN BOTÓN
Al inicio de la creación de nuestra base de datos, específicamente en la parte donde comenzamos a crear la tabla, insertamos una forma o ilustración, el cual funcionaría como botón, pues bien este botón nos servirá para llamar a la macro, para ellos haz lo siguiente:
- Clic derecho sobre el botón.
- Selecciona Asignar macro.
- En la ventana de Asignar macro, selecciona el macro que acabamos de crear en Módulo: MostrarFormulario
- Clic en el botón Aceptar.
Después de finalizar cada uno de los procedimientos realizados, obtendremos un formulario como se ve en la imagen, el cual nos permitirá Guardar, Limpiar, Cerrar, Buscar, Actualizar y Eliminar registros en la base de datos.
Para descargar el archivo que usamos como ejemplo en la explicación de cada uno de los pasos para crear una base de datos en Excel, aquí te el enlace: Descargar BD en Excel
También te puede interesar la siguiente entrada: Cómo hacer una factura en Excel paso a paso.