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.

Validar Controles vacíos en un Formulario (Userform) en Excel.

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.

Ahorra tiempo en tus desarrollos usando una macro para todos tus Formularios.

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.

You may also like...

Leave a Reply

Your email address will not be published.

%d bloggers like this: