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.

Crear una base de datos en Excel

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.