Verificar la validez del valor del Combobox en Excel VBA

Resuelto
zabouall Mensajes publicados 6 Estado Miembro -  
lermite222 Mensajes publicados 9042 Estado Colaborador -
Hola,
he implementado un combobox con una lista de valores. He elegido la propiedad fmStyleDropDownCombo, que permite la entrada manual de valores.

Quiero asegurarme de que el valor ingresado sea válido para no generar un error. Me gustaría que aparezca una advertencia.

Creo que hay que usar el evento "'Change", pero no sé cómo hacerlo.
¡Gracias por tu ayuda!!
Configuración: Windows XP Internet Explorer 6.0

1 respuesta

  1. lermite222 Mensajes publicados 9042 Estado Colaborador 1 199
     
    Para probar el texto del combo no es tan simple como dices.
    Coloca este código en la hoja del combo
    Dim EditLigne As Boolean

    Private Sub ComboBox1_Change() If ComboBox1.ListIndex = -1 Then '-1 cuando la línea es editada EditLigne = True End If End Sub

    Luego hay dos soluciones posibles o ambas juntas
    Primera solución, el usuario debe pulsar enter para validar su modificación.
    Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Dim Txt As String 'Para probar la pulsación de la tecla Enter. If KeyCode = 13 And EditLigne Then 'verificar el texto del combo. Txt = ComboBox1.Text Stop 'si está bien validar '... ComboBox1.AddItem Txt EditLigne = False End If End Sub

    Segunda solución, la prueba se realiza cuando el usuario selecciona algo distinto al combo.
    Private Sub ComboBox1_LostFocus() 'Para no probar la pulsación de la tecla Enter. 'Probar al salir del combo If EditLigne Then 'verificar el texto del combo. Txt = ComboBox1.Text Stop 'si está bien validar '... ComboBox1.AddItem Txt EditLigne = False End If End Sub

    Aquí hay dos soluciones posibles.
    ¡Hasta luego!
    --
    La experiencia instruye más seguramente que el consejo. (André Gide)
    2