Macro para validar campos vacíos de cualquier Formulario en Excel VBA
<<CURSO DE MACROS EN YOUTUBE>>
Durante el desarrollo del CURSO DE MACROS EN EXCEL se me van ocurriendo ideas que no necesariamente son parte del curso, aunque sí las incluyo en la lista de reproducción. Un claro ejemplo es el Procedimiento o Macro que vengo a regalarles.
Al trabajar con Formularios VBA en Excel, se me ocurrió la idea de tener una macro que validara todos los Controles o campos vacíos un Formulario. Pero quise ir más allá. Qué tal si esa macro funcionara para cualquier UserForm. Beneficio? No tener que escribir una macro para cada Formulario, sino que todos manden llamar a un mismo procedimiento que se adecúe a TODOS los CONTROLES y así ahorramos tiempo escribiendo código y SOMOS MÁS PRODUCTIVOS.
Ver Video UNA MACRO para validar campos vacíos de TODOS los Formularios
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
Lo que hacemos todos
En la mayoría de los desarrollos en Excel con Formularios, cada uno de ellos tiene código VBA para validar los campos vacíos antes de continuar con el siguiente paso, que regularmente es GUARDAR la información en alguna Tabla.
Hasta hoy, lo que yo hacía es ponerle el mismo nombre a los Controles, comenzando con “valor”, añadiéndoles un consecutivo, para luego trabajar con sus valores mediante un ciclo FOR NEXT.
La desventaja de este método es que tengo que escribir esa macro en cada Formulario, y aunque esta manera de trabajar ya hace el trabajo más ágil, todavía hay maneras de hacerlo mejor.
Figura 1. Validar Controles vacíos en un Formulario (Userform) en Excel.
Siendo más productivo con una macro
La solución a no tener que escribir macros en cada Formulario, es que tengas una sola macro y ésta sea llamada por cualquier Formulario para validar Cuadros de texto (TextBox) o Cuadros combinados (ComboBox) vacíos. A continuación de enlisto los beneficios de éste maravilloso código VBA:
-
Se adecúa a cualquier Formulario, sin importar la cantidad de Controles.
-
No permite continuar hasta que todos los campos estén llenos.
-
Se colorea en Naranja el fondo (BackColor) cada control que esté vacío.
-
Te ahorras tiempo al no escribir una macro por Formulario.
Si después de lo anterior no descargas el archivo de ejemplo y guardas muy bien esa macro para luego usarlas en todos tus Formularios, en serio, no sé si realmente quieras ser más productivo en Excel y macros.
Figura 2. Ahorra tiempo en tus desarrollos usando una macro para todos tus Formularios.
Código VBA fantástico de la macro
El siguiente código deberá ir dentro un Módulo normal. Ten en cuenta que debemos declarar la variable ControlesVacios como Pública.
'EXCELeINFO 'MVP Sergio Alejandro Campos 'http://www.exceleinfo.com 'https://www.youtube.com/user/sergioacamposh Option Explicit Option Private Module Public ControlesVacios Sub ValidarVacios() Dim FormActivo As UserForm Dim miControl As Control Set FormActivo = VBA.UserForms(0) ControlesVacios = Empty For Each miControl In FormActivo.Controls If TypeOf miControl Is MSForms.TextBox Then If miControl.Value = "" Then ControlesVacios = ControlesVacios + 1 miControl.BackColor = VBA.RGB(237, 125, 49) Else miControl.BackColor = VBA.vbWhite End If Else If TypeOf miControl Is MSForms.ComboBox Then If miControl.Value = "" Then ControlesVacios = ControlesVacios + 1 miControl.BackColor = VBA.RGB(237, 125, 49) Else miControl.BackColor = VBA.vbWhite End If Else 'Nada End If End If Next miControl End Sub
Cuando ya tengas tu macro guardara, el siguiente código deberá ir en cada Formulario donde quieras que se validen los campos / controles vacíos.
Private Sub CommandButton1_Click() 'Llamamos al Procedimiento para validar campos vacíos Call ValidarVacios If ControlesVacios > 0 Then MsgBox "Hay " & ControlesVacios & " controles vacíos. No se puede continuar.", vbExclamation Else MsgBox "Continuar...", vbInformation 'Tu macro End If End Sub
Descargar el archivo de ejemplo
MACRO para validar campos vacíos en cualquier Formulario de Excel VBA – EXCELeINFO.zip
<<CURSO DE MACROS EN YOUTUBE>>
Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.