Crear una condición en un combobox para elegir items solamente de la lista desplegable

Ahora en el formulario que te comente tengo varios combobox los que tienen cada uno de ellos una lista de items precargados y funcionan muy bien pero quisiera saber si hay alguna manera de establecer una condición para que dichos combobox solo admitan los items que ya tienen en lista es decir que si alguien ingresa un texto que no pertenece a la lista y al querer pasar al siguiente control muestre un mensaje en el que aclare que solo los datos de la lista pueden ser elegidos y no permita seguir avanzando en el formulario

Respuesta
1

Para limitar a la lista debes elegir en la propiedad style la opción 2-fmStyleDropDownList de esa manera limita a la lista y no deja ingresar otro dato.

Pero si tu requieres que elijan un dato antes de proseguir puedes verificar en el código con algo así por ejemplo:

If combobox1= empty then

msgbox ("Debe seleccionar un items")

combobox1.setfocus

End if

mira ejemplos

http://www.programarexcel.com/p/userform.html 

2 respuestas más de otros expertos

Respuesta
1

 H o l a :

Envíame tu archivo con el formulario y me explicas con ejemplos lo que necesitas.

Recuerda poner en el asunto del correo tu nombre de usuario.

S a l u d o s

H o l a:

Este es el código para validar que ingresen únicamente datos en los combos, de lo que tengan cargado:

Private Sub Gestor_Cobro_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Por.Dante Amor
    If salir = 0 Then Exit Sub
    If Gestor_Cobro = "" Then
        MsgBox "Ingresa un Gestor de la lista"
        Cancel = True
        Exit Sub
    End If
    Fecha.SetFocus
End Sub
'
Private Sub Gestor_Cobro_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Por.Dante Amor
    KeyAscii = 0
End Sub
'
Private Sub Mes_Proceso_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Por.Dante Amor
    If salir = 0 Then Exit Sub
    If Mes_Proceso = "" Then
        MsgBox "Ingresa un mes de la lista"
        Cancel = True
        Exit Sub
    End If
    Mes_Registro.SetFocus
End Sub
'
Private Sub Mes_Proceso_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Por.Dante Amor
    KeyAscii = 0
End Sub
'
Private Sub Mes_Registro_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Por.Dante Amor
    If salir = 0 Then Exit Sub
    If Mes_Registro = "" Then
        MsgBox "Ingresa un mes de la lista"
        Cancel = True
        Exit Sub
    End If
    Tipo_Servicio.SetFocus
End Sub
'
Private Sub Mes_Registro_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Por.Dante Amor
    KeyAscii = 0
End Sub
'
Private Sub Tipo_Servicio_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Por.Dante Amor
    If salir = 0 Then Exit Sub
    If Tipo_Servicio = "" Then
        MsgBox "Ingresa un servicio de la lista"
        Cancel = True
        Exit Sub
    End If
    Cta_Banco.SetFocus
End Sub
'
Private Sub Tipo_Servicio_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Por.Dante Amor
    KeyAscii = 0
End Sub
'
Private Sub Cta_Banco_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Por.Dante Amor
    If salir = 0 Then Exit Sub
    If Cta_Banco = "" Then
        MsgBox "Ingresa una cuenta de la lista"
        Cancel = True
        Exit Sub
    End If
    Gestor_Cobro.SetFocus
End Sub
'
Private Sub Cta_Banco_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Por.Dante Amor
    KeyAscii = 0
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
    'se inicia la variable salir con 1
    salir = 1
    Mes_Proceso.SetFocus
End Sub
Respuesta
1

En la propiedad locked debe estar en true

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas