Este art铆culo pertenece a nuestra serie dedicada a UserForms. Si es el primero que has visto, te sugiero iniciar por la primera entrega: Introducci贸n a UserForms
Art铆culo anterior: UserForms | Botones de Opci贸n
En esta nueva entrega de nuestra serie de art铆culos dedicados a UserForms, vamos a profundizar en una nueva herramienta de nuestra caja m谩gica para crear formularios: las casillas de selecci贸n.
La buena noticia: si te sientes a gusto con el uso de los botones de opci贸n (que tratamos en el art铆culo anterior, click aqu铆 para ver el art铆culo), lo que sigue a continuaci贸n te resultar谩 muy sencillo.
Se trata de la misma l贸gica que los botones de opci贸n, pero con una diferencia fundamental: para el caso de las casillas de selecci贸n, cada una es independiente de las otras. Esto quiere decir que como usuario podr谩s activarlas o no, independientemente de lo que hayas hecho con las dem谩s.
Dado que el caso anterior puede ser l贸gico y f谩cil de implementar, vamos a ver un caso particular donde las casillas de selecci贸n adquieren no solo una diferencia, sino tambi茅n una ventaja frente a los botones de opci贸n.
Si quisieras insertar, por ejemplo, una sola opci贸n para el usuario, digamos en este caso: “Perfil Activo”, con los botones de opci贸n el usuario no podr铆a revertir su selecci贸n si lo hubiera activado pero luego se arrepintiese: al hacer click sobre el bot贸n, la selecci贸n no alterna entre “encendido”/”apagado”. Por el contrario, con las casillas de selecci贸n, esto resulta muy sencillo.
Ve谩moslo en la pr谩ctica.
En primer lugar, agregaremos una nueva columna a nuestra base de datos de ejemplo, con el encabezado “Usuario Activo” en la columna F:
La idea de este campo es tener actualizada nuestra base en caso de que existan n煤mero de legajo que ya no sean utilizados habitualmente por personas pertenecientes a una organizaci贸n dada.
Vamos ahora a la edici贸n de nuestro formulario en VBA, y empezamos por crear algo m谩s de espacio en la zona inferior, antes de los botones de Aceptar y Cancelar.
En este caso, nos plantemos una duda, que podr谩s encaminar seg煤n tus propias preferencias al crear tus formularios: ¿es necesario crear una etiqueta que acompa帽e a la casilla de selecci贸n, o con colocarle un nombre descriptivo es suficiente? Siempre debemos evitar redundancias u opciones que generen dudas al usuario, de modo que en mi caso, optar茅 por crear la casilla de manera directa con una caption clara de lo que realiza.
Como “nombre duro” del objeto, he decidido llamarlo chkActivo. Adem谩s, voy a establecer que, de manera predeterminada, se encuentre tildado, y el usuario deba destildarlo manualmente cuando desea establecer que el perfil no tiene actividad. Esto se debe a que suponemos ser谩 el caso m谩s frecuente en la carga de datos. Configuramos entonces su propiedad Value = True.
Finalmente, configuraremos el c贸digo que se ejecutar谩 cada vez que presionemos el bot贸n Aceptar (recuerda que en nuestro ejemplo, es la macro: Private Sub cmdAceptar_Click().
Agregaremos dos bloques de c贸digo:
- Una que cargue la palabra “Activo” si la casilla est谩 tildada, o “Inactivo” si no lo est谩: una nueva condici贸n If…Else
If chkActivo.Value = True Then
Cells(UFila, 6).Value = "Activo"
Else
Cells(UFila, 6).Value = "inactivo"
End If
- Una l铆nea que reestablezca el valor predeterminado True al reiniciar el formulario:
chkActivo.Value = True
Y ensayamos nuestro formulario:
Te invito a hacer la prueba de c贸mo se comporta el formulario al hacer click sobre un bot贸n de opci贸n ya elegido, contra el comportamiento de la casilla de selecci贸n al hacerle click nuevamente.
Art铆culo Siguiente: UserForms | Controlar el Ingreso de Datos (Valores Num茅ricos)
Art铆culo Anterior: UserForms | Botones de Opci贸n