Formulario en Excel usando VBA y macros


Aprende a crear un formulario con macros en excel para capturar datos y guardarlos en otra hoja de excel en forma de base de datos.

Al final de esta entrada, encontrarás el archivo de descarga del ejemplo que estaremos realizando a continuación.

Para comenzar, vamos a tener como referencia la imagen de la hoja Formulario:

formulario con macros en excel

Para la realización de este ejemplo, crearemos 2 hojas las cuales tendrán por nombre: Formulario y Datos.

FORMATO DEL DISEÑO DE LA HOJA FORMULARIO

  • Texto del encabezado del formulario: aplicamos combinar celdas las filas 2 y 3 y columnas desde B hasta G. El color de fondo es azul y letras en negrita color blanco.
  • Nombre: Escribimos el texto en la fila 5 y combinamos celdas 5B y 5C, letras en color negrita.
  • Apellido Paterno: Escribimos el texto en la fila 6 y combinamos celdas 6B y 6C, letras en color negrita.
  • Apellido Materno: Escribimos el texto en la fila 7 y combinamos celdas 7B y 7C, letras en color negrita.
  • Género: Escribimos el texto en la fila 8 y combinamos celdas 8B y 8C, letras en color negrita.
  • Edad: Escribimos el texto en la fila 9 y combinamos celdas 9B y 9C, letras en color negrita.
  • Estado Civil: Escribimos el texto en la fila 10 y combinamos celdas 10B y 10C, letras en color negrita.
  • Estado Civil: Escribimos el texto en la fila 11 y combinamos celdas 11B y 11C, letras en color negrita.

INSERTAMOS LOS CONTROLES DE FORMULARIO

  • Ir a la pestaña Programador o Desarrollador
  • Clic en el ícono de insertar
  • Insertaremos 5 cuadros de texto para Nombre, Apellido Paterno, Apellido Materno, Edad y Teléfono.
  • Para la celda Género, insertaremos 2 botones de opción
  • Para la celda de Estado Civil, insertaremos un cuadro combinado.
  • Insertar 2 botones en la parte inferior del formulario.

Propiedades para los 5 formatos de texto

  • Para activar propiedades, haz clic en el primer cuadro de texto que has insertado, ir a la pestaña Programador o Desarrollador, clic en el ícono de propiedades.

RECUERDA: Para poder trabajar con las propiedades y cualquier formato que le queremos dar a los controles de formulario, el Modo Diseño debe estar seleccionado.

  • Para el cuadro de texto de Nombre: en la barra de propiedades en Name escribir txtNombre
  • Para el cuadro de texto de Apellido Paterno: en la barra de propiedades en Name escribir txtApaterno
  • Similar para el cuadro de texto de Apellido Materno: en la barra de propiedades en Name escribir txtAmaterno
  • Para el cuadro de texto de Edad: en la barra de propiedades en Name escribir txtEdad
  • Para el cuadro de texto de Teléfono: en la barra de propiedades en Name escribir txtTelefono

Propiedades para los 2 botones de opción

  • Para la opción de Masculino: en la barra de propiedades en Name escribir OptMasculino y en Caption escribir Masculino.
  • Para la opción de Femenino: en la barra de propiedades en Name escribir OptFemenino y en Caption escribir Femenino.

Propiedad para el cuadro combinado

Para insertar elementos dentro del cuadro combinado, haremos lo siguiente:

  • Elige una celda cualquiera para crear el primer elemento del cuadro combinado, para este ejemplo se eligió la celda M1 y Escribimos Soltero(a), M2 y Escribimos Casado(a), M3 y Escribimos Divorciado(a) M4 y Escribimos Viudo(a).
  • En propiedades del cuadro combiando cambiaremos lo siguiente: En Name escribir cmbEcivil y en ListFillRange escribir M1:M4

Propiedades para los botones

  • Para el botón de Guardar en la barra de propiedades en Name escribir btnGuardar y en Caption escribir Guardar.
  • Para el botón de Limpiar en la barra de propiedades en Name escribir btnLimpiar y en Caption escribir Limpiar.

FORMATO DEL DISEÑO DE LA HOJA DATOS

Después de haber terminado con el diseño del formulario, ahora tenemos que crear una tabla en la hoja Datos donde se pueda capturar los datos ingresados en el formulario, para ello es necesario crear el siguiente rango de datos, tal como se muestra en la siguiente imagen:

formulario con macros en excel

El diseño es súper sencillo de hacerlo, crea los 8 encabezados que observas en la imagen, el color de fondo será azul, letras en negrita color blanco.

Luego selecciona las celdas hasta donde deseas dar bordes, para así de esta manera tener una tabla.

CÓDIGO EN VBA PARA CREAR MACROS

Para el botón btnGuardar

Private Sub btnGuardar_Click()
Application.ScreenUpdating = False
Dim iRow As Long
iRow = Sheets("Datos").Range("A1048576").End(xlUp).Row + 1
If validarform = True Then
With ThisWorkbook.Sheets("Datos")
.Range("A" & iRow).Value = iRow - 1
.Range("B" & iRow).Value = txtNombre.Value
.Range("C" & iRow).Value = txtApaterno.Value
.Range("D" & iRow).Value = txtAmaterno.Value
.Range("E" & iRow).Value = IIf(OptMasculino.Value = True, "Masculino", "Femenino")
.Range("F" & iRow).Value = txtEdad.Value
.Range("G" & iRow).Value = cmbEcivil.Text
.Range("H" & iRow).Value = txtTelefono.Value
End With
Call limpiar
Else
Application.ScreenUpdating = True
Exit Sub
End If
Application.ScreenUpdating = True

End Sub

Para el botón btnLimpiar

Private Sub btnLimpiar_Click()
Dim i As Integer
i = MsgBox("¿Tú quieres limpiar los campos?", vbQuestion + vbYesNo + vbDefaultButton2, "Limpiar formulario")
If i = vbYes Then
Call limpiar
End If
End Sub

Código para la función limpiar

Function limpiar()
Application.ScreenUpdating = False
txtNombre.Value = ""
txtNombre.BackColor = vbWhite

OptMasculino.Value = False
OptFemenino.Value = False

cmbEcivil.Text = ""
cmbEcivil.BackColor = vbWhite

txtApaterno.Value = ""
txtApaterno.BackColor = vbWhite

txtAmaterno.Value = ""
txtAmaterno.BackColor = vbWhite

txtEdad.Value = ""
txtEdad.BackColor = vbWhite

txtTelefono.Value = ""
txtTelefono.BackColor = vbWhite

End Function

Código para la función validarform

Function validarform() As Boolean
txtNombre.BackColor = vbWhite
cmbEcivil.BackColor = vbWhite
txtApaterno.BackColor = vbWhite
txtAmaterno.BackColor = vbWhite
txtEdad.BackColor = vbWhite
txtTelefono.BackColor = vbWhite

validarform = True

If Trim(txtNombre.Value) = "" Then
MsgBox "El nombre no puede quedar en blanco", vbOKOnly + vbInformation, "Name"
txtNombre.BackColor = vbRed
txtNombre.Activate
validarform = False
ElseIf OptMasculino.Value = False And OptFemenino.Value = False Then
MsgBox "Por favor selecciona su opción", vbOKOnly + vbInformation, "Género"
validarform = False
ElseIf cmbEcivil.Text <> "Soltero(a)" And cmbEcivil.Text <> "Casado(a)" And _
    cmbEcivil.Text <> "Divorciado(a)" And cmbEcivil.Text <> "Viudo(a)" Then
    MsgBox "Por favor seleccione su estado civil", vbOKOnly + vbInformation, "EstadoCivil"
    cmbEcivil.BackColor = vbRed
    cmbEcivil.Activate
    validarFOR = False
    ElseIf Trim(txtApaterno.Value) = "" Then
    MsgBox "El Apellido paterno no puede quedar en blanco", vbOKOnly + vbInformation, "ApellidoPaterno"
txtApaterno.BackColor = vbRed
txtApaterno.Activate
validarform = False
ElseIf Trim(txtAmaterno.Value) = "" Then
    MsgBox "El Apellido materno no puede quedar en blanco", vbOKOnly + vbInformation, "ApellidoMaterno"
txtAmaterno.BackColor = vbRed
txtAmaterno.Activate
validarform = False
ElseIf Trim(txtEdad.Value) = "" Then
    MsgBox "La edad no puede quedar en blanco", vbOKOnly + vbInformation, "Edad"
txtEdad.BackColor = vbRed
txtEdad.Activate
validarform = False
ElseIf Trim(txtTelefono.Value) = "" Then
    MsgBox "El teléfono no puede quedar en blanco", vbOKOnly + vbInformation, "Telefono"
txtTelefono.BackColor = vbRed
txtTelefono.Activate
validarform = False
End If
End Function

GUARDAR EL DOCUMENTO EXCEL HABILITADO PARA MACROS

  • Ir a Archivo
  • Clic en Guardar como
  • Escribe el nombre que tendrá tu documento y en la parte de abajo, en la lista desplegable selecciona la opción de: Libro de excel habilitado para macros.

Para descargar el material de apoyo con el que se trabajó para crear el formulario con macros en excel clic en el siguiente enlace: Formulario con VBA y Macros.

También te puede interesar la siguiente entrada: Crear una base de datos en Excel.

-->

Tecpro Digital

En este Blog encontrarás recursos digitales para el aprendizaje, recursos educativos digitales, recursos digitales interactivos para descargar gratis y editarlos en programas de Ms Office como Word, Excel y PowerPoint. También encontrarás ejercicios de programación desarrollados en Borland C++ y Java Netbeans.