Código, valida TextBoxs y ComboBoxs para que no se guarden en blanco

Por sus respuestas acertados a usuarios que buscamos ayuda.

Estuve buscando en la web, es muy interesante lo que conseguí el código del experto James Bond, solo valida textboxs quisiera que valide también al mismo tiempo los comboboxs.

¿La siguiente consulta seria el código lo puedo poner antes de los códigos que tengo para guardar datos en el libro excel ó seria después?.

Private Sub CommandButton1_Click()
For Each Control In Me.Controls
    tipo = UCase(TypeName(Control))
    If tipo = "TEXTBOX" Then
        If Control.Text = Empty Then
            MsgBox ("CAMPO VACIO"), vbCritical, "AVISO"
            Control.SetFocus
            Exit For
        End If
    End If
Next Control
End Sub

2 Respuestas

Respuesta
1

Podés evaluar los 2 controles dentro del mismo bucle:

For Each Control In Me.Controls
    tipo = UCase(TypeName(Control))
    If tipo = "TEXTBOX" or tipo = "COMBOBOX" Then
        If Control.Text = Empty Then
            MsgBox ("CAMPO VACIO"), vbCritical, "AVISO"
            Control.SetFocus
            Exit For
        End If
    End If
Next Control

Excelente trabaja bien la macro, solo que no debe seguir ejecutándose los demás cogidos siguientes, hasta ingresar los campos vacíos.

Si, correcto, falta la línea del Exit Sub

If Control.Text = Empty Then
       MsgBox ("CAMPO VACIO"), vbCritical, "AVISO"
      Control.SetFocus
      Exit Sub
      Exit For
End If

Sdos!

Respuesta
1

[Hola 

Private Sub CommandButton1_Click()
'valida textbox
'
For Each Control In Me.Controls
    tipo = UCase(TypeName(Control))
    If tipo = "TEXTBOX" Then
        If Control.Text = Empty Then
            MsgBox ("CAMPO VACIO"), vbCritical, "AVISO"
            Control.SetFocus
            Exit For
        End If
    End If
Next Control
'valida combobox
For Each Control In Me.Controls
    tipo = UCase(TypeName(Control))
    If tipo = "COMBOBOX" Then
        If Control.Text = Empty Then
            MsgBox ("CAMPO VACIO"), vbCritical, "AVISO"
            Control.SetFocus
            Exit For
        End If
    End If
Next Control
'
'
'acciones delpués de la validación
'
'
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas