Formulario en Excel con Macros: Captura Datos y Bloquea Celdas Automáticamente

Si alguna vez te has preguntado cómo hacer que las celdas de un formulario en Excel se bloqueen automáticamente después de ingresar un valor, este tutorial es para ti. Hoy te mostraré cómo lograrlo utilizando macros en Excel para que, al capturar un dato en una celda, esta se bloquee de forma automática, evitando modificaciones accidentales. Vamos a ver paso a paso cómo puedes implementar esta funcionalidad.

Formulario en Excel con Macros: Captura Datos y Bloquea Celdas Automáticamente

Formulario en Excel con Macros: Captura Datos y Bloquea Celdas Automáticamente

Suscríbete para más tutoriales

Descarga el archivo para practicar

Escribe tu correo electrónico para recibir gratis el archivo para practicar.

El Problema: Proteger Celdas Conforme se Ingresan Datos

La situación es la siguiente: tienes un formulario con campos como nombre, apellido, correo y teléfono. Lo que deseas es que, al ingresar un dato en una celda, esta se bloquee inmediatamente y te permita avanzar al siguiente campo. El objetivo es garantizar que la información capturada se proteja y no se pueda modificar.

Paso 1: Configurar el Formulario

Formulario de captura en Excel
Imagen 1. Formulario de captura en Excel.

Comenzamos por crear un formulario sencillo en Excel con los campos necesarios:

  • Nombre (celda C3)
  • Apellido (celda C5)
  • Correo (celda C7)
  • Teléfono (celda C9)

Inicialmente, estas celdas estarán desbloqueadas para permitir la entrada de datos.

Paso 2: Desbloquear las Celdas de Entrada

Antes de aplicar las macros, es importante asegurarnos de que las celdas donde se ingresarán los datos no estén bloqueadas:

  1. Selecciona las celdas C3, C5, C7, y C9.
  2. Haz clic derecho y selecciona Formato de celdas.
  3. En la pestaña Proteger, desmarca la opción Bloqueada.
  4. Luego, protege la hoja desde la pestaña Revisar con una contraseña. Esto permitirá que solo las celdas desbloqueadas puedan modificarse.

Paso 3: Usar el Evento Change en VBA

Ahora vamos a crear una macro utilizando el evento Change en VBA para que Excel detecte cuándo se ingresan datos en las celdas específicas y automáticamente bloquee la celda modificada.

Código VBA:

  1. Haz clic derecho en la pestaña de la hoja donde está tu formulario y selecciona Ver código.
  2. Selecciona el evento Worksheet y luego el evento Change.
  3. Introduce el siguiente código:
Option Explicit

'Mis cursos de Excel, Macros y Power BI | https://www.deztaca.com
'Mi canal de YouTube | youtube.com/user/sergioacamposh
'Descarga mi add-in | addin.exceleinfo.com
'Obtén la Certificación Excel Expert | exceleinfo.com/certificacion-mos

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("C3, C5, C7, C9")) Is Nothing Then

Application.EnableEvents = False

Me.Unprotect Password:="pass"

Target.Locked = True

Select Case Target.Address
Case "$C$3"
Range("C3").Interior.Color = vbCyan
Range("C5").Select
Case "$C$5"
Range("C5").Interior.Color = vbCyan
Range("C7").Select
Case "$C$7"
Range("C7").Interior.Color = vbCyan
Range("C9").Select
Case "$C$9"
Range("C9").Interior.Color = vbCyan
End Select

Me.Protect Password:="pass"
Application.EnableEvents = True

End If

End Sub

¿Qué hace esta Macro?

  1. Detecta los cambios: El evento Change monitorea las celdas C3, C5, C7 y C9 para ver si se ha ingresado un dato.
  2. Desactiva los eventos: Evita que el código se ejecute en bucle continuo.
  3. Desprotege la hoja: Esto es necesario para poder modificar las celdas.
  4. Bloquea la celda modificada: Una vez que se ingresa el dato, la celda se bloquea automáticamente.
  5. Cambia el color de la celda: Le da un color amarillo para indicar que está bloqueada.
  6. Mueve el cursor a la siguiente celda: Dependiendo de cuál celda fue modificada, mueve el cursor a la siguiente (de C3 a C5, y así sucesivamente).

Paso 4: Probar la Macro

Ahora es el momento de probar. Escribe un nombre en la celda C3 y presiona Enter. Verás cómo la celda de apellido se activa, mientras que la celda de nombre queda bloqueada. Repite este proceso con los demás campos y observa cómo cada celda se bloquea automáticamente al ingresar los datos.

¿Y si Quieres Guardar los Datos en Otra Hoja?

Una vez que tienes los datos capturados y las celdas bloqueadas, puedes ampliar la funcionalidad añadiendo una macro para guardar los datos en otra hoja. En otro de mis videos te muestro cómo hacer esto, y te invito a que lo veas para aprender cómo combinar ambas soluciones.

Certifícate en Excel

Tienes experiencia en Excel y quieres mejorar tus oportunidades laborales? Obtén la Certificación Excel Expert avalada por Microsoft.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top